群集上的节点处于不正常状态的所有原因是什么?
根据我有限的理解,当给定节点上的HDFS利用率超过阈值时,通常会发生这种情况。此阈值使用每个磁盘的最大磁盘利用率百分比属性定义。
我观察到有时在 spark-sql 上触发内存密集型 spark 作业或使用 pyspark 节点进入不健康状态。进一步查看后,我在处于不正常状态的节点上进行了ssh,发现实际上dfs利用率低于75%,并且为上述属性设置的值在我的集群上为99
。所以我认为我缺少其他一些事实,这基本上导致了这种行为。
提前感谢您的帮助。
马尼什·梅赫拉
每个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-利用率-per-disk-percent)
在您的情况下,您似乎正在检查跨节点的 HDFS 使用情况。您需要使用"df -h"验证各个节点上的磁盘利用率,以检查该节点上的磁盘使用情况。如果您看到像/mnt/这样的卷超过 99%,那么它将被标记为不正常。
您需要找出占用大部分磁盘空间的顶级目录,并相应地采取适当的操作。HDFS 将使用节点上的磁盘(使用 dfs.data.dir 设置),如果在作业运行期间其利用率非常高,则可能会导致节点不正常。但是,如果没有高 HDFS 利用率,节点可能会变得不健康。