HDFS Balancer原理及优化方向

一、前言

集群在长时间使用过程中,难免会出现节点间数据不均衡的情况。尤其是在集群新增节点,或者人为的调整了副本数量以后,数据多的节点可以达到95%以上,少的节点连10%都不到。hadoop中提供了Balance工具来在节点间移动数据以达到集群节点数据平衡的效果。集群数据不平衡现象越严重,越有必要调整和优化Balancer的速度。

二、HDFS Balancer流程及原理

2.1 Balancer 使用

HDFS Balancer使用时可以调整的参数如下:

-policy <policy>

datanode(默认值):如果每个datanode均衡,则群集是平衡的。

blockpool:如果每个datanode中的每个块池都是平衡的,则群集是平衡的。

-threshold <threshold>

集群平衡的条件,datanode间磁盘使用率相差阈值,区间选择:0~100

-exclude -f <hosts-file>

默认为空,指定该部分ip不参与balance

-source -f <hosts-file>

只选择指定的节点作为Balancer的源头

-include -f <hosts-file>

默认为空,只允许该部分ip参与balance

-idleiterations

退出前的最大空闲迭代次数,默认为 5

2.2 Balancer流程

Balancer工具启动后作为一个独立的守护线程与NN分开运行,运行过程循环进行,直到集群以达到平衡状态,或者没有块可以移动,或者与NN交互报错才会停止,每次循环中的流程总体可分为以下三步:

1. 算

Balncer从NN处查询数据来计算:集器整体平均使用率,各节点的使用率,各个节点距离平衡状态可以移进或移出多少数据等。并根据计算结果将各节点分类。

2. 选

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值