所有HDFS磁盘数据存储不均情况的终极处理方案

一、多节点存储不均

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-

你可能感兴趣的:(Hadoop核心技术,磁盘,存储,不均,wordcount,单词计数)