在 Amazon EMR 叢集調整大小時,我的 Spot 執行個體並未佈建。
解決方法
Amazon Elastic Compute Cloud (Amazon EC2) 可能會隨時中斷您的 Spot 執行個體,原因如下:
- 缺少 Spot 容量。
- Amazon EC2 無法滿足請求限制。
- Spot 價格高於指定的價格上限。
- 您的 Spot 帳戶配額已用盡。若要解決此問題,您可以申請提高服務配額。
如需更多資訊,請參閱 Amazon EC2 為什麼要中斷我的 Spot 執行個體?
**注意:**最佳做法是僅將 Spot 執行個體用於無狀態、具備容錯能力,而且有足夠彈性可以承受中斷的工作負載。
如果啟動程序指令碼經過修改或含有錯誤,可能也會導致 Spot 執行個體和隨需執行個體無法佈建。
在 /emr/instance-controller/log/bootstrap-actions 或 s3://cluster_id/node-failed/bootstrap-actions/stderr.gz 中檢查啟動程序指令碼的日誌。
例如,下列啟動程序動作日誌會顯示啟動程序動作 1 (emr_bootstrap_actions.sh) 失敗:
Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum
Memory : 125 M RSS (444 MB VSZ)
Started: Tue Jul 19 05:36:36 2022 - 00:03 ago
State : Running, pid: 7914
Error: Package: falcon-sensor-4.18.0-6403.amzn2.x86_64 (/falcon-sensor-4.18.0-6403.amzn2.x86_64)
Requires: systemd
前述錯誤會導致所有新的替代節點終止。該節點也會停止佈建新的替代執行個體,且核心節點執行個體群組會進入停滯狀態,並顯示下列錯誤訊息:
""state": "ARRESTED", "message": "Instance group ig-2JN5######## in Amazon EMR cluster j-37H4####### (emr-#####-spark-cluster) was arrested at for the following reason: Error provisioning instances.""
在重新開始調整叢集大小之前,請先修正啟動程序指令碼中的錯誤。
相關資訊
Spot 執行個體中斷
取得 Spot 執行個體請求的狀態
為什麼即使價格上限高於 Spot 價格,Spot 執行個體仍會終止?