集群中节点不健康

Man*_*hra 1 hdfs amazon-emr emr hadoop-yarn apache-spark-sql

集群上的节点处于不健康状态的原因有哪些?

根据我有限的理解,当给定节点上的 HDFS 利用率超过阈值时,通常会发生这种情况。此阈值是使用 max-disk-utilization-per-disk-percentage 属性定义的。

我有时观察到在 Spark-sql 上触发内存密集型 Spark 作业或使用 pyspark 节点进入不健康状态。经过进一步查看,我在处于不健康状态的节点上进行了 ssh,发现实际上 dfs 利用率低于 75%,并且在我的集群上为上述属性设置的值是 99。

所以我认为我遗漏了一些其他事实,这基本上导致了这种行为。

在此先感谢您的帮助。

曼尼什·梅赫拉

jc *_*nem 5

每个hadoop节点(从属)上的YARN Nodemanager将根据健康检查器确定的启发式方法将节点标记为不健康。默认情况下它将是磁盘检查器。如果设置,它也可以是外部健康检查器。

https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/NodeManager.html#Health_checker_service

默认情况下Disk Checker会检查节点上的可用磁盘空间,如果磁盘超过 90%,则会将节点标记为不健康。(这是默认值并在yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage中设置)

就您而言,您似乎正在检查跨节点的 HDFS 使用情况。您需要使用“df -h”来验证各个节点上的磁盘利用率,以检查该节点上的磁盘使用情况。如果您看到像 /mnt/ 这样的卷超过 99% ,那么它将被标记为不健康。

您需要找出占用大部分磁盘空间的顶级目录,并相应地采取适当的操作。HDFS 将使用节点上的磁盘(使用 dfs.data.dir 设置),如果在作业运行期间其利用率非常高,则可能会导致节点运行状况不佳。然而,如果 HDFS 利用率不高,节点可能会变得不健康。