ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hadoop balancer平衡集群各节点数据

2020-05-12 13:51:45  阅读:805  来源: 互联网

标签:机器 hadoop balancer 移动 数据 节点 block


问题:hadoop出现报警,有些节点数据磁盘已经占用了90%,有些节点磁盘用了50%

解决:HDFS自带的balancer工具来解决,保证每个节点的数据分布均衡

方法-全节点&个别节点平衡:

1.设置带宽

hdfs dfsadmin -setBalancerBandwidth 104857600  \\手工增加带宽,否则数据移动时候带宽会变大,hdfs有默认值的

                                                                           \\参数含义:设置balance工具在运行中所能占用的带宽,设置的过大可能会造成mapred运行缓慢


2.设置节点间的差异阈值

hdfs balancer

-threshold  10                    \\集群平衡的条件,datanode间磁盘使用率相差阈值,区间选择:0~100
                                  \\Threshold参数为集群是否处于均衡状态设置了一个目标
这个命令中-t参数后面跟的是HDFS达到平衡状态的磁盘使用率偏差值。如果机器与机器之间磁盘使用率偏差小于10%,那么我们就认为HDFS集群已经达到了平衡的状态。
-policy datanode                  \\默认为datanode,datanode级别的平衡策略
-exclude  -f  /tmp/ip1.txt        \\默认为空,指定该部分ip不参与balance, -f:指定输入为文件
-include  -f  /tmp/ip2.txt        \\默认为空,只允许该部分ip参与balance,-f:指定输入为文件
-idleiterations  5               \\迭代次数,默认为 5

原理:

Hadoop的开发人员在开发Balancer程序的时候,遵循了以下几点原则

1.    在执行数据重分布的过程中,必须保证数据不能出现丢失,不能改变数据的备份数,不能改变每一个rack中所具备的block数量。

2.    系统管理员可以通过一条命令启动数据重分布程序或者停止数据重分布程序。

3.    Block在移动的过程中,不能暂用过多的资源,如网络带宽。

4.    数据重分布程序在执行的过程中,不能影响name node的正常工作。

说明:

Rebalance程序作为一个独立的进程与name node进行分开执行。

1 Rebalance Server从Name Node中获取所有的Data Node情况:每一个Data Node磁盘使用情况。

2 Rebalance Server计算哪些机器需要将数据移动,哪些机器可以接受移动的数据。并且从Name Node中获取需要移动的数据分布情况。

3 Rebalance Server计算出来可以将哪一台机器的block移动到另一台机器中去。

4,5,6 需要移动block的机器将数据移动的目的机器上去,同时删除自己机器上的block数据。

7  Rebalance Server获取到本次数据移动的执行结果,并继续执行这个过程,一直没有数据可以移动或者HDFS集群以及达到了平衡的标准为止。


balancer在如下5种情况下会自动退出:

  1. 集群已达到均衡状态;
  2. 没有block能被移动;
  3. 连续5次迭代移动没有任何一个block被移动;
  4. 当与namenode交互式出现了IOException;
  5. 另一个balancer在运行中。

标签:机器,hadoop,balancer,移动,数据,节点,block
来源: https://www.cnblogs.com/wang3680/p/12875734.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有