如何从网关机器运行hadoop集群平衡器?

时间:2014-11-19 06:17:18

标签: hadoop hdfs

我编写了一个检查Hadoop阻止报告的脚本,如果需要,它会运行hadoop balancer。我读了this article about hdfs balancer design,看起来我们需要在单独的机器上运行HDFS balancer,这样它就不会重载名称节点。

如果我的理解是正确的,请纠正我。

现在我已经设置了一个单独的节点并在其上安装了Hadoop,但是这台机器不是群集的一部分。数据节点或任务跟踪器守护程序未在此计算机上运行。

当我在这台机器上运行hadoop balancer命令时,我只得到以下输出:

$ hadoop balancer
Balancing took 135.0 milliseconds
$

我尝试直接执行start-balancer.sh脚本,但输出类似。唯一的变化是此脚本在其.out文件中写入该单行。

当我在Name节点上执行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

从这个输出看起来,平衡器只在namenode上运行。所以我的问题是我们是否始终只需要在名称节点上运行平衡器?或者我们是否需要进行一些配置以使此平衡器在网关机器上运行?

1 个答案:

答案 0 :(得分:0)

检查群集是否平衡的最佳方法是访问namenode web UI或goto hadoop dfsadmin -report获取最新统计信息。不要花时间或登录控制台。另外,最佳做法是在namenode上运行balancer,它应该从客户端节点运行。