集群上不健康的节点

Unhealthy node on the cluster

集群上的某个节点处于不健康状态的所有原因是什么?

根据我有限的理解,当给定节点上的 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 检查节点上的空闲磁盘 space,如果磁盘超过 90%,它将标记节点不健康。 (这是默认值并在 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 中设置)

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

您将需要找出占用最多磁盘的顶级目录 space 并相应地采取适当的措施。 HDFS 将使用节点上的磁盘(使用 dfs.data.dir 设置),如果在作业 运行 期间其利用率非常高,可能会导致节点不健康。但是,如果 HDFS 利用率不高,节点可能会变得不健康。