检查节点上数据的均衡程度最好的办法是使用 hdfs dfsadmin -report 命令,来检查数据的均衡程度,以确定均衡的频率,以下示例是显示如何检查集群中HDFS数据的均衡度:
sudo -u hdfs hdfs dfsadmin -report | cat <(echo "Name: Total") - |grep '^\(Name\|Total\|DFS Used\)' | tr '\n' '\t' | sed -e 's/\(Name\)/\n\1/g' | sort --field-separator=: --key=5,5n
或者[先切换到hdfs用户]
$ hdfs dfsadmin -report | cat <(echo "Name: Total") - |grep '^\(Name\|Total\|DFS Used\)' | tr '\n' '\t' | sed -e 's/\(Name\)/\n\1/g' | sort --field-separator=: --key=5,5n
集群1现在数据(数据均衡之前)分布情况:
集群2现在数据(数据均衡之前)分布情况:
如果均衡作业卡住了,或者太慢,在这种情况下可以重启均衡器,首先使用以下命令找出运行均衡器进程的ID(PID):
ps -aux | grep '\-Dproc_balancer' | grep -v grep
找到均衡器的作业ID后,将其删除,并删除均衡器锁文件,如下所示
rm -rf /tmp/hdfs-balancer.lock