為什麼我的 AWS Glue 工作失敗,並收到錯誤訊息「結束狀態:-100。診斷: 容器發佈在 *遺失* 節點上」?

2 分的閱讀內容
0

我的 AWS Glue 1.0 或 0.9 工作失敗,並收到以下錯誤訊息: 「結束狀態:-100。診斷: 容器發佈在 遺失 節點上。」

解決方法

如果您的資料來源是 JDBC,請參閱為什麼當我將大型資料集從 Amazon RDS 遷移到 Amazon S3 時,我的 AWS Glue 工作失敗並出現遺失節點?如果您的資料來源是 Amazon Simple Storage Service (Amazon S3),使用下列一或多種方法來解決遺失節點錯誤。

**注意事項:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI

新增更多資料處理單元 (DPU)

預設情況下,AWS Glue 工作有 10 個 DPU,而且使用標準工作者類型。一個 DPU 會保留給應用程式管理器使用。在新增更多 DPU 之前,考慮下列事項:

  • 新增更多 DPU 只有在已平行處理工作負載時才有幫助。如果您未正確分割資料,資料不會分配到新節點,而且您會收到遺失節點的錯誤訊息。如需詳細資訊,請參閱判斷最佳 DPU 容量
  • 在某些情況下,大型檔案可能會在一個節點上耗用太多資源,因而降低平行處理工作負載的有效性。若要減少此錯誤,請確定此種大型檔案採用可分割的格式。如需詳細資訊,請參閱使用 AWS Glue 擴展 Apache Spark 工作和分割資料的最佳實務
  • 工作執行的時間越長,其寫入磁碟的日誌就越多。如果日誌造成磁碟空間問題,則新增更多 DPU 也無濟於事。在某些情況下,遺失節點錯誤是由於記錄過多和磁碟溢寫所造成。
  • 檢查日誌和 glue.ALL.jvm.heap.usage Amazon CloudWatch 指標,以找出耗用記憶體的執行程式。如果部分執行程式耗用的記憶體多於其他執行程式,資料偏斜可能會導致此錯誤。

使用工作 APIAWS Command Line Interface (AWS CLI)AWS Glue 主控台,以便在建立工作時加入更多 DPU:

  • 工作 API: 在執行 CreateJob 作業時設定 NumberOfWorkers 屬性。
  • AWS CLI: 在執行 create-job 命令時設定 number-of-workers 屬性。
  • AWS Glue 主控台: 在設定工作屬性頁面的安全性組態、指令碼程式庫和工作參數 (選擇性) 下,新增容量上限值。這是該工作的 DPU 數量。

確定已針對該工作啟用 CloudWatch 指標。這些指標可協助您監控工作效能,以及判斷是否必須新增更多 DPU。使用工作 APIAWS CLIAWS Glue 主控台,以便為新工作或現有工作啟用指標:

  • 工作 API: 在定義 CreateJobUpdateJob 作業中的 DefaultArguments 時,使用 --enable-metrics 引數。
  • AWS CLI: 使用 --enable-metrics 引數
  • AWS Glue 主控台: 在監控選項下,將工作指標設定為已啟用

變更 DPU 工作者類型

視資料集的大小而定,標準工作者類型可能沒有足夠的資源來防止 Spark 應用程式耗盡記憶體和溢寫到磁碟。若要解決此問題,選擇具有更多可用資源的工作者類型:

  • **標準 (預設值):**每個工作者映射到 1 個 DPU (4 個 vCPU、16 GB 記憶體),並具有 50 GB 的磁碟空間。
  • **G.1X:**每個工作者映射到 1 個 DPU (4 個 vCPU、16 GB 記憶體),並具有 64 GB 的磁碟空間。
  • **G.2X:**每個工作者映射到 2 個 GPU (8 個 vCPU、32 GB 記憶體),並具有 128 GB 的磁碟空間。

建立工作時,請使用工作 APIAWS CLIAWS Glue 主控台來變更工作者類型:

  • 工作 API: 在執行 CreateJob 作業時設定 WorkerType 屬性。
  • AWS CLI: 在執行 create-job 命令時設定 worker-type 屬性。
  • AWS Glue 主控台: 在設定工作屬性頁面的安全性組態、指令碼程式庫和工作參數 (可選) 下,為工作者類型選擇不同的選項。

相關資訊

在 AWS Glue 中新增工作

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