hadoop调优-HDFS集群数据不均衡处理hdfs balancer

查看当前的数据分布情况:
hdfs dfsadmin -report

现象一:
集群上经常会增添新的DataNode节点,或者人为干预将数据的副本数降低或者增加。
会造成datanode数据存储不均衡,一个datanode使用了70%,而有一个只使用了30%.

解决:
通过执行hadoop提供的balancer,来进行datanode之间数据balance。

步骤:
1、命令行设置宽带(如果在启动Hadoop集群前已优化该参数则不需要执行此步骤)
参数:

<!-- HDFS做负载均衡时使用的最大宽带,默认1048576即1MB/s,一般情况下设置为10M;设置的过大会影响当前job的运行。 -->
<!-- 该值也可以在启动balancher脚本时设置。 -->
<property>  
    <name>dfs.datanode.balance.bandwidthPerSec</name>  
    <value>10485760</value> 
</property>


10M/s速度命令行设置:

hdfs dfsadmin -setBalanacerBandwidth 10485760

2、设置允许的磁盘容量的百分比,默认10%,设置5,也就是容忍datanode数据的差距是5%

sbin/start-balancer.sh  -threshold  5

**注:**也可以选择需要进行数据balance的个别datanode进行执行
**注:**建议找一个比较空闲的的Datanode执行,建议不要在NameNode执行

sbin/start-balancer.sh -threshold  5 -include   dn1,dn2,dn3   
# 1,2,3进行负载均衡
sbin/start-balancer.sh -threshold  5 -exclude   dn1,dn2,dn3   
# 1,2,3之外的节点进行

负载均衡

现象二:
datanode内磁盘之间的数据不均衡。datanode上挂载多个磁盘。

<property>
    <name>dfs.datanode.data.dir</name> 
    <value>/export/grid/01/hadoop/hdfs/data,/export/grid/02/hadoop/hdfs/data,/export/grid/03/hadoop/hdfs/data,/export/grid/04/hadoop/hdfs/data,/export/grid/05/hadoop/hdfs/data,/export/grid/06/hadoop/hdfs/data,/export/grid/07/hadoop/hdfs/data,/export/grid/08/hadoop/hdfs/data,/export/grid/09/hadoop/hdfs/data,/export/grid/10/hadoop/hdfs/data,/export/grid/11/hadoop/hdfs/data,/export/grid/12/hadoop/hdfs/data</value>
</property> 

01磁盘使用率是70%  02磁盘使用率30%

解决:
这种情况下balancer就不能处理数据平衡,需要使用diskbalancer来平衡磁盘之间的数据。hadoop3.0才开始支持

步骤命令:
可以通过运行 plan 命令在给定的datanode上运行:

hdfs diskbalancer -plan {主机名}

查询从datanode获取磁盘平衡器的当前状态:

hdfs diskbalancer -query {主机名}

执行execute:

hdfs diskbalancer -execute {/system/diskbalancer/XXXXX/{主机名}.plan.json}

取消命令取消正在运行的计划:(最好不使用)

hdfs diskbalancer -cancel {/system/diskbalancer/XXXXX/{主机名}.plan.json}
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值