我在 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
相關資訊
瞭解節點類型:主節點、核心節點和任務節點