HDFS Balancer流程(上)
Posted 中兴大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS Balancer流程(上)相关的知识,希望对你有一定的参考价值。
Balancer使用场景如下:
异构机器:机器的磁盘容量不一样,可能存在部分DataNode磁盘使用较高,而部分较低的情况;
新增机器:新增DataNode机器后,只有新写的数据可能到新的机器中,老数据不会自动迁移,从而造成DataNode数据不平衡;
固定的DataNode节点上传数据:HDFS上传策略中,如果上传的客户端机器与DataNode合设,则默认的第一个备份会放在本机上,造成DataNode存储不平衡。
使用HDFS的balancer命令,可以配置一个Threshold来平衡每一个DataNode磁盘利用率。命令如下:
start-balancer.sh -threshold 10.0 //其中,threshold取值为[1.0,100.0] |
运行之后,会有Balancer进程出现:
上述命令设置了Threshold为10.0%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值+Threshold,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。Threshold的值为1.0到100.0之间,不显示的进行参数设置的话,默认是10.0。
范围超出之后,会有异常抛出。
如果参数值设置的越小,花费的时间就越长。使用此命令时,会反复的从磁盘使用率高的节点上,把块转移到磁盘使用率低的磁盘上。
HDFS Balancer相关的配置项均位于hdfs-site.xml中,可以在manager界面上进行配置修改,如下图:
网络带宽
在做均衡的时候,会对网络带宽有影响,可在下面的配置项中对各DN均衡操作的带宽做限制,ZDH版本的缺省值为100M/s, 参数重启时生效。
<property> <name>dfs.datanode.balance.bandwidthPerSec</name> <value>104857600</value> <description> Specifies the maximum amount of bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description> </property> |
并行度
在做均衡的时候,每个DataNode移动块的最大并行数目,缺省的值为5,修改后重启balance即可生效。
<property> <name>dfs.balancer.concurrent.moves.num</name> <value>5</value> <description> Specifies the maximum number of blocks that each datanode can move in parallel for the balancing purpose. </description> </property> |
【1】重磅|侯为贵参加李克强总理经济座谈会 中兴互联网+助力简政放权
【2】中兴发布工程师群像大数据调研报告
【3】大数据,让股市从此没有秘密
【4】“一带一路”急先锋,中兴大数据领跑首届亚非智慧城市峰会
【5】中兴通讯助力中信银行金融大数据建设
【6】中兴大数据惊艳亮相德国CeBIT
【7】【重磅大礼】MWC大会中兴通讯主题发言原稿
【8】过年不谈技术 | 为全天下通信人点赞!
【9】中兴智慧城市UOC平台——将科幻变成现实的魔法师
【10】中兴通讯“环宁护城河”大数据产品为青奥会保驾护航
以上是关于HDFS Balancer流程(上)的主要内容,如果未能解决你的问题,请参考以下文章
sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id