Debian Hadoop集群扩容流程(以动态添加DataNode和NodeManager为例)
环境检查(所有新节点)
确保新节点满足以下要求:
java -version验证;/opt/hadoop);ping命令测试)。网络与权限配置
/etc/hosts文件中添加新节点的IP地址与主机名映射(如192.168.1.13 node03),确保集群内所有节点能通过主机名互相访问;ssh-keygen -t rsa),将公钥(id_rsa.pub)复制到NameNode、ResourceManager等主节点的~/.ssh/authorized_keys文件中,配置完成后测试ssh 主节点主机名能否无密码登录。Hadoop配置同步
将主节点(如NameNode)的Hadoop配置目录($HADOOP_HOME/etc/hadoop)拷贝至新节点的相同目录(scp -r 主节点IP:$HADOOP_HOME/etc/hadoop 新节点IP:$HADOOP_HOME/etc/),确保新节点的配置文件(如core-site.xml、hdfs-site.xml、yarn-site.xml)与集群一致。
添加新节点到workers列表
编辑主节点的$HADOOP_HOME/etc/hadoop/workers文件(若未存在则新建),添加新节点的主机名(如node03),该文件用于批量启动HDFS和YARN服务。
配置HDFS白名单(可选,若启用)
若集群启用了HDFS白名单(通过hdfs-site.xml中的dfs.hosts属性配置),需编辑该文件(如$HADOOP_HOME/etc/hadoop/dfs.hosts),添加新节点的主机名,确保新节点能连接到NameNode。
配置YARN节点包含列表(可选,若启用)
若集群启用了YARN节点白名单(通过yarn-site.xml中的yarn.resourcemanager.nodes.include-path属性配置),需编辑对应的包含文件(如$HADOOP_HOME/etc/hadoop/yarn.include),添加新节点的主机名,允许其作为NodeManager加入集群。
启动HDFS服务(DataNode)
在新节点上执行以下命令,启动DataNode守护进程:
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode 或通过主节点执行start-dfs.sh脚本(需确保新节点已在workers列表中),批量启动所有HDFS服务。
启动YARN服务(NodeManager)
在新节点上执行以下命令,启动NodeManager守护进程:
$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager 或通过主节点执行start-yarn.sh脚本,批量启动所有YARN服务。
验证HDFS节点状态
在主节点上执行hdfs dfsadmin -report命令,查看HDFS集群状态,确认新节点(如node03)已出现在“Live datanodes”列表中;或通过NameNode Web界面(默认http://NameNodeIP:9870)的“Datanodes”标签页查看。
验证YARN节点状态
在主节点上访问ResourceManager Web界面(默认http://ResourceManagerIP:8088),点击“Cluster”→“Nodes”,确认新节点(如node03)已出现在“Nodes”列表中,状态为“RUNNING”。
测试集群功能
在主节点上提交一个简单的MapReduce任务(如计算π值),验证新节点是否能正常参与计算:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 5 100 若任务执行成功且结果正确(如Estimated value of Pi is 3.141...),说明新节点已成功加入集群。
hdfs balancer命令,启动数据均衡任务(设置阈值如-threshold 10,表示块分布偏差超过10%时进行调整),将数据均匀分布到所有DataNode。auto_add_node.sh),集成配置同步、服务启动、状态验证等步骤,简化后续扩容操作(示例脚本可参考搜索结果中的Shell脚本)。