如何解决 Amazon EMR 中的节点标注和 YARN ResourceManager 故障?

1 分钟阅读
0

我在 Amazon EMR 集群上启用了节点标注。然后,YARN ResourceManager 故障。

简短描述

此问题将影响 Amazon EMR 发行版本 5.19.0 - 5.21.0。在这些版本中,Amazon EMR 将节点标注文件存储到 HDFS 中:

  • DEFAULT_DIR_NAME = "node-labels"
  • MIRROR_FILENAME = "nodelabel.mirror"
  • EDITLOG_FILENAME = "nodelabel.editlog"

Amazon EMR 将这些文件存储在所有节点上的 yarn-site.xml 中的以下位置:yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'。如果您在调整大小操作期间丢失包含文件数据块的所有节,这些文件会损坏,从而导致问题发生。然后,ResourceManager 将重启,陷入重启循环,然后 CommonNodeLabelsManager 将抛出异常。

要查找异常,请在 /var/log/hadoop-yarn/yarn-yarn-resourcemanager-*.log 中搜索“org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager”。

要解决此错误,请删除节点标注文件。然后,重启 ResourceManager 以重新创建文件。

解决方法

1.    检查文件系统运行状况并查找数据块:

hdfs fsck /apps/yarn/nodelabels/ -locations -blocks -files

2.    删除文件:

hdfs dfs -rm -skipTrash /apps/yarn/nodelabels/*

3.    重启 ResourceManager:

sudo stop hadoop-yarn-resourcemanager
sudo start hadoop-yarn-resourcemanager

4.    当 ResourceManager 重启时,它将重新创建节点标签文件。这样可以解决重启循环。但是,您还不能提交 YARN 应用程序。手动添加节点标签条目后您才能提交 YARN 应用程序:

yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"

5.    列出标注,以确认 ResourceManager 已重新创建它们:

yarn cluster --list-node-labels

相关信息

了解节点类型:主节点、核心和任务节点

AWS 官方
AWS 官方已更新 2 年前