溫馨提示×

Linux中Hadoop網絡如何設置

小樊
35
2025-10-12 05:05:21
欄目: 智能運維

1. 配置Linux基礎網絡環境
首先需要為每個節點設置靜態IP地址、主機名,并綁定IP與主機名的映射關系,確保節點間網絡可達。

  • 查看IP地址:使用ip address show命令查看當前網絡接口的IP信息。
  • 設置主機名:通過hostnamectl set-hostname <主機名>(如master、slave1)修改節點主機名,重啟后生效。
  • 配置靜態IP:編輯網絡接口配置文件(CentOS/RHEL為/etc/sysconfig/network-scripts/ifcfg-ens33,Debian/Ubuntu為/etc/network/interfaces),設置靜態IP、子網掩碼、網關和DNS。例如:
    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    ONBOOT=yes
    
  • 重啟網絡服務:使用systemctl restart network(CentOS/RHEL)或service networking restart(Debian/Ubuntu)應用配置。

2. 配置主機名解析(/etc/hosts文件)
在所有節點的/etc/hosts文件中添加IP地址與主機名的映射,避免依賴DNS解析,提高通信效率。例如:

192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2

保存后無需重啟,直接生效。

3. 配置SSH免密碼登錄
實現節點間無密碼通信,是Hadoop集群管理的核心要求(如NameNode與DataNode、ResourceManager與NodeManager之間的通信)。

  • 生成密鑰對:在主節點(如master)上執行ssh-keygen -t rsa,按回車鍵生成默認路徑的密鑰對(~/.ssh/id_rsa為私鑰,~/.ssh/id_rsa.pub為公鑰)。
  • 分發公鑰:將公鑰復制到所有從節點(如slave1、slave2),執行ssh-copy-id user@slave1user為節點用戶名),重復此步驟分發到其他節點。
  • 驗證免密登錄:執行ssh slave1,若無需輸入密碼即可登錄,則配置成功。

4. 關閉防火墻與SELinux(開發環境推薦)
防火墻和SELinux可能會阻止Hadoop服務的端口通信,建議在開發環境中關閉。

  • 關閉防火墻
    systemctl stop firewalld  # CentOS/RHEL
    systemctl disable firewalld
    # 或Ubuntu(使用ufw)
    ufw disable
    
  • 關閉SELinux
    setenforce 0  # 臨時關閉
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  # 永久關閉
    

5. 配置Hadoop核心網絡參數(關鍵配置文件)
Hadoop的網絡行為主要由core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xmlslaves文件控制。

  • core-site.xml:配置Hadoop默認文件系統和臨時目錄,指定NameNode的RPC地址。例如:
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>  <!-- NameNode的RPC地址 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/hadoop/tmp</value>  <!-- Hadoop臨時目錄 -->
        </property>
    </configuration>
    
  • hdfs-site.xml:配置HDFS副本數、NameNode和DataNode的數據存儲目錄。例如:
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>  <!-- 數據塊副本數(生產環境建議3,測試環境可設為1) -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/dfs/name</value>  <!-- NameNode元數據存儲目錄 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/dfs/data</value>  <!-- DataNode數據存儲目錄 -->
        </property>
    </configuration>
    
  • yarn-site.xml:配置YARN資源管理器和NodeManager的輔助服務(如MapReduce Shuffle)。例如:
    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>  <!-- ResourceManager所在節點 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>  <!-- 啟用MapReduce Shuffle服務 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>  <!-- Shuffle處理器類 -->
        </property>
    </configuration>
    
  • mapred-site.xml:配置MapReduce框架運行在YARN上。例如:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>  <!-- MapReduce運行框架 -->
        </property>
    </configuration>
    
  • slaves文件:列出所有DataNode和NodeManager節點的主機名(每行一個),用于Hadoop管理集群節點。例如:
    slave1
    slave2
    
    該文件位于$HADOOP_HOME/etc/hadoop目錄下。

6. 驗證網絡配置
完成上述步驟后,需驗證節點間通信及Hadoop服務是否正常。

  • 測試節點連通性:在主節點上執行ping slave1、ping slave2,確保能正常訪問從節點。
  • 測試SSH免密登錄:執行ssh slave1,驗證無需輸入密碼即可登錄。
  • 啟動Hadoop集群:在主節點上依次執行hdfs namenode -format(首次啟動需格式化NameNode)、start-dfs.sh(啟動HDFS)、start-yarn.sh(啟動YARN)。
  • 檢查服務狀態
    • 執行jps命令,查看主節點是否有NameNode、ResourceManager進程,從節點是否有DataNode、NodeManager進程。
    • 訪問Hadoop Web界面:HDFS管理界面http://master:50070(Hadoop 2.x)、YARN管理界面http://master:8088,確認集群狀態正常。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女