一、多节点存储不均
1、现有多节点存储不均:
1、先设置带宽 hdfs dfs -setBalancerBandwith 字节数
2、然后执行脚本start-balancer.sh -threshold n
或者 hdfs balancer -threshold n
说明:
第1步:
设置的带宽为datanode间平衡数据时消耗的最大带宽,默认值为1048576(1 M/S)。该值不能设置
很大,否则会造成MapReduce程序执行缓慢。
最好是通过一个crontab脚本每晚执行一下数据平衡操作。
第2步:
当n小于{最大值|abs(集群总体存储率x-任意一数据节点的存储率y)}时,会执行
start-balancer.sh或hdfs balancer命令,否则,这两个命令不执行。abs为绝对值。
用人话来解释的话:当所有节点存储率与集群总存储率偏差小于n%时,默认集群处于存储平衡状态,
不执行数据平衡操作。
n为5,表示百分之五。默认值为10。
注意:
1、第2步会在执行命令的机器上新开一个Rebalance Server进程,所以一定不要在NameNode上执行数据
平衡操作,以免加重NameNode的压力,影响NameNode工作。应该找一台不太繁忙的DataNode或者是新加的
DataNode上执行。
2、数据平衡只能平衡单机架各节点间的数据(节点内各磁盘的也平衡不了,hadoop 3.x能),无法平衡
整个集群。因为hadoop在设计balancer程序的时候有一条原则是,不改变机架的总block数。这就要求我们在
配置机架时,将每个机架的总存储设置相近大小。
3、stop-