在CentOS上設置HDFS網絡涉及多個步驟,包括配置靜態IP地址、設置主機名、配置免密登錄、配置ZooKeeper以及配置Hadoop。以下是詳細的步驟:
首先,你需要為每個節點配置靜態IP地址。假設你有兩個節點,分別為node1
和node2
。
編輯網絡配置文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
添加或修改以下內容:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.11
DNS1=8.8.8.8
DNS2=114.114.114.114
保存并退出編輯器,然后重啟網絡服務:
sudo systemctl restart network
為每個節點設置主機名,例如node1
、node2
等。
使用hostnamectl
命令設置主機名:
sudo hostnamectl set-hostname node1
在每個節點上生成SSH密鑰對,并將公鑰復制到其他節點的~/.ssh/authorized_keys
文件中。
生成SSH密鑰對:
ssh-keygen -t rsa
將公鑰復制到其他節點:
ssh-copy-id user@node2
ssh-copy-id user@node3
下載并解壓ZooKeeper:
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz
cd apache-zookeeper-3.8.0
配置zoo.cfg
文件:
vi conf/zoo.cfg
修改以下內容:
dataDir=/tmp/zookeeper
clientPort=2181
在dataDir
目錄下創建myid
文件,并添加相應的數值(例如,node1
的myid
文件內容為1
)。
啟動ZooKeeper服務:
./bin/zkServer.sh start
下載并解壓Hadoop:
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzf hadoop-3.3.1.tar.gz
cd hadoop-3.3.1
配置core-site.xml
文件:
vi etc/hadoop/core-site.xml
添加以下內容:
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
配置hdfs-site.xml
文件:
vi etc/hadoop/hdfs-site.xml
添加以下內容:
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/tmp/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
</property>
在node1
上格式化NameNode:
hdfs namenode -format
在node1
上啟動HDFS集群:
start-dfs.sh
在node2
上啟動HDFS集群:
start-dfs.sh
使用以下命令驗證HDFS是否正常運行:
hdfs dfs -ls /
通過以上步驟,你可以在CentOS上成功配置HDFS網絡。請根據你的實際網絡環境和需求調整配置。