我想找出 Hadoop 集群中每个节点的资源利用率(CPU、RAM)和数据处理。
有没有办法使用 MapReduce 或 HDFS 命令来找出分布在每个节点上的负载?
此外,如果一个节点很忙(过载)而另一个节点负载很小,Hadoop 中有没有办法将多余的负载分配给空闲的节点?
我想找出 Hadoop 集群中每个节点的资源利用率(CPU、RAM)和数据处理。
有没有办法使用 MapReduce 或 HDFS 命令来找出分布在每个节点上的负载?
此外,如果一个节点很忙(过载)而另一个节点负载很小,Hadoop 中有没有办法将多余的负载分配给空闲的节点?
您可以在资源管理器 Web UI 中查看跨集群的资源利用率。(资源管理器地址:8088)
负载均衡由 Hadoop 框架承担。通常负载在整个网络上平均分配,它还考虑了数据局部性等其他因素。
根据 YARN,容器是根据集群每个节点可用的资源(cpu、内存)计算的逻辑执行单元模板。跨集群计算的容器数量定义了集群的最大并行执行能力。
您可能会从页面中感受到容器的最大利用率http://<rm>:8088/cluster/nodes
,并且您可能会从页面的第一个框中
参考containers running
和,参考下面。memory used
要查看每个节点上准备好的容器数量和内存相关指标,请查看同一页面中的第二个框,您将永远不需要任何命令行工具,请参阅下文,
YARN rm 已经足够智能,考虑到每个节点的资源利用率,它可以完美地平衡整个集群的负载。
因此,如果一个节点非常繁忙,yarn rm 调度程序将根据机架感知策略决定另一个更接近具有输入拆分的节点的节点。
您可以阅读 Hadoop 权威指南中的 YARN:Anatomy of a mapreduce job。