在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网络。请根据你的实际网络环境和需求调整配置。