hadoop balance工具平衡集群dfs存储及遇到异常Got error, status message Not able to receive block 1073959989 from /1...

 

hadoop集群某个节点dfs存储比其他节点存储高时,一般会使用hadoop提供的balance(start-balancer.sh -threshold 10 )工具来移动高存储节点上的块到低存储节点上.

其中 -threshold 默认设置:10,参数取值范围:0-100,参数含义:判断集群是否平衡的目标参数,每一个 datanode 存储使用率和集群总存储使用率的差值都应该小于这个阀值 ,理论上,该参数设置的越小,整个集群就越平衡,但是在线上环境中,hadoop集群在进行balance时,还在并发的进行数据的写入和删除,所以有可能无法达到设定的平衡参数值

 

进行平衡时,可能会抛出 "because threads quota is exceeded., block move is failed"  这样的异常,这是因为在rebalanecing server启动的线程数有限,hdfs-site.xml配置中(dfs.datanode.balance.max.concurrent.moves)默认配置是5,可以适当将该值调大

在hdfs-site.xml中(注意!!!相应的datanode节点也要设置,不然运行时会抛异常,配置后重新启动对应的namenode与datanode)

<property>
        <name>dfs.datanode.balance.max.concurrent.moves</name>
        <value>1024</value>
</property>

一般主机性能好的可以调整到300~1024不等

 

在运行时拷贝的数据也会受带宽影响,hdfs-site.xml中(dfs.datanode.balance.bandwidthPerSec)默认配置值是1M即是1048576字节,视集群带宽情况而定(ifconfig 命令查看网卡,ethtool 命令 指定网卡 如:ethtool  eth1 查看带宽其中的Speed项就是带宽)设置好带宽

<property>
        <name>dfs.datanode.balance.bandwidthPerSec</name>
        <value>10485760</value>
</property>

 

另外,一般在平衡时,可以先停止存储比较高的节点上的nodemanager,这样在该节点上就不会受本地nodemanager落数据到本地,使得本地存储迅速增加的影响.

 

转载于:https://www.cnblogs.com/xjh713/p/10088897.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值