HDFS执行Rebalancing时,会首先检查当前是否处于均衡状态,如果不均衡才会执行Rebalancing。
检测时,首先计算整个集群的DFS Capacity Used比例(cluster_avg),以及每个节点的DFS Capacity Used比例(node_avg)。再比较每个节点的node_avg和cluster_avg,比较规则如下图:
图中的Rebalancing Threshold为配置项,默认值为10%。将cluster_avg+Rebalancing Threshold记为upper_limit,cluster_avg-Rebalancing Threshold记为lower_limit。
如果:node_avg>upper_limit,则该节点给标记为Over;否则,如果node_avg>cluster_avg,则该节点给标记为Above;否则,如果node_avg>lower_limit,则该节点给标记为Below;否则(node_avg<lower_limit),则该节点给标记为Under。
比较后得到了四组node(Over、Above、Below和Under),如果Over和Under组不包含任何节点,