【发布时间】:2014-11-19 06:17:18
【问题描述】:
我编写了一个脚本来检查 Hadoop 块报告,如果需要,它会运行 hadoop 平衡器。我读了this article about hdfs balancer design,看起来我们需要在单独的机器上运行 HDFS 平衡器,以免名称节点过载。
如果我的理解正确与否,请纠正我。
现在我已经设置了一个单独的节点并在其上安装了 Hadoop,但是这台机器不是集群的一部分。数据节点或任务跟踪器守护程序未在此计算机上运行。
当我在这台机器上运行hadoop balancer 命令时,我只得到以下输出:
$ hadoop balancer
Balancing took 135.0 milliseconds
$
我尝试直接执行start-balancer.sh 脚本,但我得到了类似的输出。唯一的变化是这个脚本在它的 .out 文件中写入了那一行。
当我在名称节点上执行hadoop balancer 命令时,我得到以下输出:
ubuntu@master:~$ hadoop balancer
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved
14/11/19 06:14:03 INFO net.NetworkTopology: Adding a new node: /default-rack/20.232.273.15:50010
14/11/19 06:14:03 INFO net.NetworkTopology: Adding a new node: /default-rack/20.294.195.28:50010
14/11/19 06:14:03 INFO balancer.Balancer: 0 over utilized nodes:
14/11/19 06:14:03 INFO balancer.Balancer: 0 under utilized nodes:
The cluster is balanced. Exiting...
Balancing took 477.0 milliseconds
从这个输出看来,平衡器只在名称节点上运行。所以我的问题是我们是否总是只需要在名称节点上运行平衡器?还是我们需要做一些配置才能让这个平衡器在网关机器上运行?
【问题讨论】: