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

Posted

技术标签:

【中文标题】如何从网关机器运行 hadoop 集群平衡器?【英文标题】:How to run hadoop cluster balancer from gateway machine? 【发布时间】: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

从这个输出看来,平衡器只在名称节点上运行。所以我的问题是我们是否总是只需要在名称节点上运行平衡器?还是我们需要做一些配置才能让这个平衡器在网关机器上运行?

【问题讨论】:

【参考方案1】:

检查集群是否平衡的最佳方法是访问 namenode Web UI 或转到 hadoop dfsadmin -report 以获取最新统计信息。不要花费时间或登录控制台。在 namenode 上运行平衡器也不是最佳实践,它应该从客户端节点运行。

【讨论】:

以上是关于如何从网关机器运行 hadoop 集群平衡器?的主要内容,如果未能解决你的问题,请参考以下文章

使用边缘节点运行 Hadoop 集群时如何连接到 Impala

Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

转HADOOP HDFS BALANCER介绍及经验总结

Hadoop DFS客户端安装

HDFS负载均衡器

在一台机器上运行 Hadoop 集群