一、扩容前准备工作
hdfs dfsadmin -report命令查看集群的健康状态(如NameNode是否active)、各DataNode的数量及磁盘使用情况,确认集群运行正常。ssh-copy-id new_node_ip)。systemctl stop firewalld),或在防火墙中开放HDFS相关端口(如NameNode的8020端口、DataNode的50010端口),避免网络通信被拦截。二、添加新DataNode节点
/opt/hadoop)。/etc/hadoop/conf/)复制到新节点的相同路径下(scp -r /etc/hadoop/conf/* new_node:/etc/hadoop/conf/)。fs.defaultFS指向集群的NameNode地址(如hdfs://namenode:8020),该配置需与现有集群一致。dfs.replication(设置文件副本数,如3)、dfs.namenode.datanode.registration.ip-hostname-check(设为false,允许通过IP注册,避免域名解析问题)。core-site.xml、hdfs-site.xml)与现有集群保持一致,确保所有节点配置无误。start-dfs.sh命令,启动Hadoop的DataNode服务;若集群启用了YARN,还需启动NodeManager服务(start-yarn.sh)。hdfs dfsadmin -report命令,查看集群状态,确认新节点已成功加入(显示为新DataNode的IP或主机名,状态为“Live”)。三、调整HDFS配置(可选但推荐)
dfs.replication参数(如从3调整为2,减少存储开销;或从3调整为4,提高数据可靠性)。dfs.namenode.handler.count设为100-200,dfs.datanode.handler.count设为100-200)。hdfs-site.xml中的dfs.network.script参数,指定机架感知脚本(如/etc/hadoop/conf/rack awareness.sh),确保数据副本分布在不同机架,提高容错性。四、数据平衡操作
start-balancer.sh命令,启动HDFS平衡器;平衡器会自动将数据从负载较重的DataNode(如磁盘使用率超过80%)移动到负载较轻的DataNode(如磁盘使用率低于30%)。hdfs balancer -status命令查看平衡进度(显示“Balancing is not running”表示平衡完成);也可通过NameNode Web界面(如http://namenode:9870)查看各DataNode的磁盘使用率变化。hdfs balancer -threshold参数设置平衡阈值(默认10%,数值越小平衡越彻底,但对集群性能影响越大)。五、扩容后验证
hdfs dfsadmin -report命令,确认新节点的状态为“Live”,且所有DataNode的磁盘使用率趋于均衡(差异不超过10%)。hdfs fsck /命令检查文件块是否完整)。