Hadoop平衡器管理员指南 | Hadoop Balancer Administrator Guide

平衡器是一种平衡HDFS集群磁盘空间使用情况的工具数据节点变满或新空节点加入群集时。该工具被部署为一个可由集群管理员在实时HDFS上运行的应用程序群集,而应用程序添加和删除文件。

SYNOPSIS
To start:
 sbin/start-balancer.sh [-threshold <threshold>]
 Example: bin/ start-balancer.sh
 start the balancer with a default threshold of 10%
 sbin/ start-balancer.sh -threshold 5
 start the balancer with a threshold of 5%
To stop:
 sbin/ stop-balancer.sh 

描述
阈值参数是(0%,100%)范围内的一个分数,默认值为10%。 阈值为群集是否平衡设定了目标。 一个集群是平衡的如果对于每个datanode,节点的利用率(节点上已用空间的总数与总数的比率)节点的容量)不同于集群的利用率(在节点中使用的空间的比率)群集到群集的总容量)不超过阈值。 更小门槛,一个集群将变得更平衡。 这需要更多时间来平衡器的小阈对于非常小的阈值,群集可能不是当应用程序同时写入和删除文件时能够达到平衡该工具将块从高度利用的datanodes移动到利用率低的datanode反复。 在每次迭代中,数据节点移动或接收的最多不超过10G字节或其容量的阈值部分。 每次迭代运行不超过20次分钟。 在每次迭代结束时,平衡器获取更新的datanodes信息来自限制平衡器使用带宽的系统属性在缺省值中定义配置文件:

 <property>
     <name>dfs.balance.bandwidthPerSec</name>
     <value>1048576</value>
     <description> Specifies the maximum bandwidth that each datanode can utilize for the
    balancing purpose in term of the number of bytes per second. </description>
 </property> 

该属性决定了块从一个块移动的最大速度datanode到另一个。 默认值是1MB / s。 带宽越高,a越快集群可以达到平衡状态,但与应用竞争更加激烈流程。 如果管理员在配置文件中更改此属性的值,当下一次重新启动HDFS时会观察到更改。\n 监测平衡器平衡器启动后,平衡器进度将会是输出文件名称记录在屏幕上打印。 管理员可以监视该服务器的运行情况平衡器通过读取输出文件。 以下是样本的开始部分输出:

TimeStamp                  Iteration  Bytes Already Moved Bytes     LeftTo Move Bytes     Being Moved
Nov 19, 2007 7:48:13 PM       0                0 KB                      40.88 TB            2.03 TB
Nov 19, 2007 8:10:24PM        1                2 TB                      38.29 TB            2.01 TB
Nov 19, 2007 8:31:06PM        2             3.98 TB                      36.38 TB            1.98 TB
Nov 19, 2007 8:54:58PM        3             5.94 TB                      34.42 TB            1.96 TB 

输出通过迭代显示平衡器的状态迭代。 在每次迭代中,它都会打印开始时间,迭代次数,已经移动的字节总数先前的迭代中,为了群集而剩下的总字节数以平衡以及在此迭代中移动的字节数。 一般”字节已经移动”正在增加,而”字节移动”正在减少。在HDFS集群中运行多个平衡器实例是意料之外的禁止使用该工具。

满足以下五个条件中的任何一个时,平衡器自动退出:
1.群集平衡;
2.没有块可以移动;
3.连续三次迭代没有块被移动。
4.与namenode通信时发生IOException;
5.另一个平衡器正在运行。

退出时,平衡器返回一个错误代码并打印以下消息之一在输出文件中对应上面的退出原因:
1.群集是平衡的。 退出…
2.没有块可以移动。 退出…
3.没有块已经移动了3次迭代。 退出…
4.收到一个IO异常:失败的原因。 退出…
5.另一个平衡器正在运行。 退出…

管理员可以随时通过运行中断平衡器的执行命令”stop-balancer.sh”在平衡器正在运行的机器上。

官方文档:
[1] https://issues.apache.org/jira/browse/HADOOP-1652
[2] https://issues.apache.org/jira/secure/attachment/12370966/BalancerUserGuide2.pdf

阅读更多

扫码向博主提问

Elon'

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • hadoop
  • 大数据
  • aws
  • 云计算
  • 自动化运维
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页