/etc/hosts文件,添加集群所有节点的IP与主机名映射(如192.168.1.103 hadoop103);ssh-keygen -t rsa),将公钥(id_rsa.pub)拷贝到新节点的~/.ssh/authorized_keys文件中,验证ssh hadoop103能否无密码登录;apt install chrony),在NameNode上启动并设置开机自启(systemctl enable --now chronyd),新节点同步NameNode时间(chronyc sources -v);jdk-11.0.20_linux-x64_bin.tar.gz),配置环境变量(JAVA_HOME=/usr/lib/jvm/jdk-11.0.20,PATH=$JAVA_HOME/bin:$PATH),刷新配置(source /etc/profile)。在NameNode的$HADOOP_HOME/etc/hadoop目录下,编辑hdfs-site.xml文件,添加或修改以下属性(若文件不存在则新建):
<property>
<name>dfs.hosts</name>
<value>/home/hadoop/hadoop/etc/dfs.include</value> <!-- 白名单路径,需提前创建 -->
</property>
保存后,将hdfs-site.xml文件复制到集群所有节点的相同目录下(确保配置一致性)。
在NameNode的dfs.include文件中,添加新节点的主机名(如hadoop103),每行一个:
hadoop101
hadoop102
hadoop103 <!-- 新节点 -->
在新节点上:
hadoop-3.3.6.tar.gz),解压到/opt目录(tar -xzf hadoop-3.3.6.tar.gz -C /opt),重命名为hadoop;/etc/profile,添加以下内容:export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新配置(source /etc/profile);$HADOOP_HOME/etc/hadoop目录下的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml文件复制到新节点的相同目录下;$HADOOP_HOME/etc/hadoop/slaves文件中,添加新节点的主机名(hadoop103),保存后复制到集群所有节点。在新节点上,启动DataNode和NodeManager服务:
hadoop-daemon.sh start datanode # 启动DataNode
yarn-daemon.sh start nodemanager # 启动NodeManager
或在所有节点上执行集群启动命令(start-dfs.sh、start-yarn.sh),新节点会自动加入。
hdfs dfsadmin -report,查看“Live datanodes”列表,确认新节点(hadoop103)的状态为“live”;http://<namenode-ip>:9870),进入“Datanodes”页面,查看新节点的存储容量、心跳状态等信息。添加新节点后,集群数据可能分布不均,需手动触发平衡操作:
stop-dfs.sh);start-balancer.sh),默认阈值为10%(即节点存储使用率差异超过10%时会触发数据迁移);hdfs balancer -status),直到所有节点的存储使用率差异小于阈值。core-site.xml、hdfs-site.xml)必须保持一致,避免因配置差异导致节点无法正常工作;