HDFS在CentOS上的负载均衡实现指南
一 核心概念与适用场景
二 前置检查与准备
hdfs dfsadmin -report,确认各节点剩余空间与使用率差异。hdfs dfsadmin -setBalancerBandwidth 104857600(示例为100 MB/s)。core-site.xml中的fs.defaultFS建议指向NameNode RPC地址(8020)或HA的nameservice,而非具体某个DataNode;均衡由NameNode调度,客户端不直接连DataNode取数。三 执行数据均衡的标准流程
hdfs dfsadmin -setBalancerBandwidth 104857600hdfs balancer -threshold 10
/usr/local/hadoop/sbin/start-balancer.sh(内部调用Balancer,默认阈值通常为10%)-threshold N:设置均衡阈值(0–100%,越小越严格,耗时越长)-policy datanode|blockpool:按节点或块池均衡-exclude/-include:指定排除/包含的DataNodetail -f /var/log/hadoop-hdfs/hadoop-hdfs-balancer-*.loghdfs dfsadmin -report中**Used%**趋同情况,直至收敛到阈值内。四 扩缩容场景的负载均衡要点
hdfs balancer -threshold 5(示例阈值5%,更严格更快收敛)。hdfs-site.xml配置白名单/黑名单:
dfs.hosts.exclude 指向文件(如**/data/hadoop-3.3.1/etc/hadoop/excludes**)hdfs dfsadmin -refreshNodeshdfs --daemon stop datanode五 常用参数与自动化建议
-threshold:均衡阈值(如5–10%)-policy:均衡粒度(datanode/blockpool)-exclude/-include:节点包含/排除-idleiterations:最大空闲循环次数hdfs dfsadmin -setBalancerBandwidth <B/s>0 2 * * 0 /usr/local/hadoop/bin/hdfs balancer -threshold 10。