跳至內容

如何解決 Amazon EMR 中的「Exit status: -100.Diagnostics: Container released on a lost node」錯誤?

2 分的閱讀內容
0

我的 Amazon EMR 作業因「Container released on a lost node」錯誤而失敗。

簡短描述

當 Amazon EMR 因磁碟空間使用率過高而終止核心或任務節點時,您可能會收到以下錯誤:

「ExecutorLostFailure (executor 12 exited caused by one of the running tasks) Reason: Container marked as failed: container_1572839353552_0008_01_000002 on host: ip-##-###-##-## Exit status: -100.Diagnostics: Container released on a lost node」

當節點因長時間高 CPU 使用率或可用記憶體不足而無法回應時,您也可能會收到上述錯誤。

以下解決方法提供了在磁碟空間不足且 MR 運作狀態不良指標顯示節點運作狀態不良時,如何解決錯誤的步驟。

解決方法

當核心或任務節點的磁碟使用率 (例如 /mnt/mnt1) 超過 90% 時,磁碟會變為運作狀態不良。如果運作狀態良好的節點磁碟低於 25%,YARN ResourceManager 會妥善地解除委任該節點。若要解決此問題,請將更多 Amazon Elastic Block Store (Amazon EBS) 容量新增至 EMR 叢集。

確認根本原因

若要確認錯誤原因,請檢查 EMR 叢集的 MR 運作狀態不良節點MR 遺失節點 Amazon CloudWatch 指標

如果 MR 運作狀態不良節點指標顯示節點運作狀態不良,表示問題是由磁碟空間不足引起。

如果 MR 遺失節點指標顯示節點遺失,表示節點遺失是由硬體故障引起。或 Amazon EMR 因 CPU 或記憶體使用率過高而無法存取該節點。

為新叢集新增更多 Amazon EBS 容量

在啟動 Amazon EMR 叢集時,若要新增更多 Amazon EBS 容量,請選擇較大的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體類型。如需更多資訊,請參閱執行個體的預設 EBS 儲存空間。您也可以在建立叢集時修改磁碟區大小或新增更多磁碟區。

為新建或執行中的叢集新增核心或任務節點

在啟動新叢集時,選擇更多的核心或任務節點。或將更多核心或任務節點新增至執行中的叢集

為執行中的叢集新增更多 Amazon EBS 磁碟區

如果較大的 Amazon EBS 磁碟區無法解決問題,請將更多 Amazon EBS 磁碟區附加到執行中的叢集。

請完成下列步驟:

  1. 更多 Amazon EBS 磁碟區附加到核心與任務節點。

  2. 格式化並掛載附加的磁碟區。請確保使用正確的磁碟號碼。例如,使用 /mnt1/mnt2,而非 /data

  3. 使用 SSH 連線到節點

  4. /etc/hadoop/conf/yarn-site.xmlyarn.nodemanager.local-dirs 屬性中新增路徑 /mnt1/yarn
    範例:

    <property>    <name>yarn.nodemanager.local-dirs</name>
        <value>/mnt/yarn,/mnt1/yarn</value>
    </property>
  5. 重新啟動 NodeManager 服務:

    sudo stop hadoop-yarn-nodemanager
    sudo start hadoop-yarn-nodemanager
  6. 啟用終止保護

如果磁碟空間問題仍然存在,請採取以下措施:

  • 移除不必要的檔案。
  • 將磁碟使用率臨界值從 90% 提高到 99%。為此,請在所有節點上修改 yarn-default.xml 中的 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 屬性。然後,重新啟動 hadoop-yarn-nodemanager 服務。

相關資訊

Amazon EMR 叢集因「NO_SLAVE_LEFT」而終止,且核心節點為「FAILED_BY_MASTER」

為什麼 Amazon EMR 叢集中的核心節點會耗盡磁碟空間?

AWS 官方已更新 5 個月前