找出每个节点的资源利用率并在集群中平均分配负载

Find out the resource utilization of every node and distribute load equally in a cluster

我想了解 Hadoop 集群中每个节点的资源利用率(CPU、RAM)和数据处理情况。

有没有什么方法可以使用 MapReduce 或 HDFS 命令找出分布在每个节点上的负载?

另外,如果一个节点很忙(过载)而另一个节点负载很少,Hadoop有没有办法将多余的负载分配给空闲的节点?[​​=10=]

您可以在 Resource Manager web UI 中查看跨集群的资源利用率。 (ResourceManagerAddress:8088)

平衡负载由 Hadoop 框架承担。通常负载在整个网络上平均分配,它还考虑了数据局部性等其他因素。

根据 YARN,容器是根据集群每个节点可用的资源(cpu、内存)计算的逻辑执行单元模板。跨集群计算的容器数量定义了集群的最大并行执行能力。

您可以从 http://<rm>:8088/cluster/nodes 页面感受到容器的最大利用率,并且您可以参考页面第一个框中的 containers runningmemory used,请参阅下文。

要查看准备好的容器数量和每个节点上的内存相关指标,请查看同一页面中的第二个框,您永远不需要任何命令行工具,请参阅下文,

YARN rm 已经足够智能,考虑到每个节点上的资源利用率,它将完美地平衡整个集群的负载。

因此,如果一个节点非常繁忙,则 yarn rm 调度程序将根据机架感知策略决定更接近具有输入拆分的节点的另一个节点。

您可以阅读 Hadoop 权威指南中的 YARN:Anatomy mapreduce 作业。