Amazon EMR叢集終止 NO_SLAVE_LEFT 和核心節點 FAILED_BY_MASTER - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EMR叢集終止 NO_SLAVE_LEFT 和核心節點 FAILED_BY_MASTER

通常會發生這種情況,是因為終止保護已停用,而且所有核心節點超過yarn-site.xml 檔案相對應的 yarn-site 組態分類之中使用率閾值上限所指定的磁碟儲存容量。此值預設為 90%。當核心節點的磁碟使用率超過使用率閾值時,YARN NodeManager 運作狀態服務會將節點報告為 UNHEALTHY。當處於此狀態時,Amazon EMR拒絕會列出節點,不會為其配置YARN容器。如果節點運作狀態不佳 45 分鐘,Amazon 會將關聯的 Amazon EC2執行個體EMR標記為終止FAILED_BY_MASTER。當與核心節點相關聯的所有 Amazon EC2執行個體都標示為終止時,叢集會終止為 狀態,NO_SLAVE_LEFT因為沒有資源可執行任務。

一個核心節點超出磁碟使用率可能會導致連鎖反應。如果單一節點因為 而超過磁碟使用率閾值HDFS,其他節點也可能接近閾值。第一個節點超過磁碟使用率閾值,因此 Amazon EMR拒絕會列出它。這會增加剩餘節點的磁碟使用率負擔,因為它們開始在其本身之間複寫他們在拒絕列出的節點上遺失HDFS的資料。每個節點接著都會以類似的方式變成 UNHEALTHY,叢集最終會終止。

最佳實務與建議

設定叢集硬體的足夠儲存

當您建立叢集時,請確定有足夠的核心節點,且每個節點都有適當的執行個體存放區和 的EBS儲存磁碟區HDFS。如需詳細資訊,請參閱計算叢集所需的HDFS容量。您也可以手動或使用自動擴展將核心執行個體新增到現有的執行個體群組。新的執行個體具有與執行個體群組中的其他執行個體相同的儲存體組態。如需詳細資訊,請參閱使用 Amazon EMR叢集擴展來調整不斷變化的工作負載

啟用終止保護

啟用終止保護。如此一來,如果核心節點遭到拒絕列出,您可以使用 連線到相關聯的 Amazon EC2執行個體SSH,以疑難排解和復原資料。如果您啟用終止保護,請注意 Amazon EMR不會將 Amazon EC2執行個體取代為新的執行個體。如需詳細資訊,請參閱使用終止保護來保護您的 Amazon EMR叢集免於意外關閉

建立MRUnhealthyNodes CloudWatch 指標的警示

這個指標會報告呈報 UNHEALTHY 狀態的節點數量。它相當於YARN指標 mapred.resourcemanager.NoOfUnhealthyNodes。您可以設定此警示的通知在達到 45 分鐘逾前告知您運作狀態不佳的節點。如需詳細資訊,請參閱使用 監控 Amazon EMR指標 CloudWatch

使用 yarn-site 調整設定

您可以根據您的應用程式需求調整下列節點。例如,對於節點報告 UNHEALTHY 的情況,您可能想要增加 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 的值來提高磁碟使用率閾值。

您可以在使用 yarn-site 組態分類建立叢集時設定這些值。如需詳細資訊,請參閱 Amazon EMR版本指南 中的設定應用程式。您也可以使用 連線至與核心節點相關聯的 Amazon EC2執行個體SSH,然後使用/etc/hadoop/conf.empty/yarn-site.xml文字編輯器在 中新增值。進行變更後,您必須重新啟動 hadoop-yarn-nodemanager,如下所示。

重要

當您重新啟動 NodeManager 服務時,除非在建立叢集時yarn.nodemanager.recovery.enabled將 設定為true使用yarn-site組態分類,否則作用中YARN容器會遭到刪除。您也必須使用 yarn.nodemanager.recovery.dir 屬性指定目錄來存放容器狀態。

sudo /sbin/stop hadoop-yarn-nodemanager sudo /sbin/start hadoop-yarn-nodemanager

如需目前yarn-site屬性和預設值的詳細資訊,請參閱 Apache Hadoop 文件中的YARN預設設定

屬性 預設值 描述

yarn.nodemanager.disk-health-checker.interval-ms

120000

磁碟執行運作狀態檢查的頻率 (以秒為單位)。

yarn.nodemanager.disk-health-checker.min-healthy-disks

0.25

NodeManager 啟動新容器時必須運作狀態良好的磁碟數量下限。這同時對應於 yarn.nodemanager.local-dirs (預設為在 Amazon /mnt/yarn中EMR) 和 yarn.nodemanager.log-dirs (預設為 /var/log/hadoop-yarn/containers,其在 Amazon mnt/var/log/hadoop-yarn/containers中會對稱至 EMR)。

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90.0

磁碟標示為錯誤之前允許的磁碟空間使用率百分比上限。值可介於 0.0 到 100.0 之間。如果值大於或等於 100,則 會 NodeManager 檢查是否有完整磁碟。這適用於 yarn-nodemanager.local-dirsyarn.nodemanager.log-dirs

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0

磁碟提供的空間下限。這適用於 yarn-nodemanager.local-dirsyarn.nodemanager.log-dirs