本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Presto 中處理 Spot 執行個體遺失
借助 Amazon EMR 中的 Spot 執行個體,您可以在備用 Amazon EC2 容量上以較低成本執行大數據工作負載。成本降低的代價是,Amazon EC2 可能顯示兩分鐘通知而中斷 Spot 執行個體。當您終止節點時,Presto 可能需要長達 10 分鐘,然後才會傳回錯誤。這會導致錯誤報告和可能重試的不必要延遲。快速終止是一項功能,可讓您控制 Presto 處理已終止節點的方式。
Presto 協調器的作業是,透過定期進行輪詢的狀態,追蹤所有作業節點。如果沒有快速終止,協調器不會向 YARN NodeManager 查詢每個節點的狀態。這可能會導致在查詢失敗前進入長時間重試迴圈。透過快速終止,Presto 協調器會在輪詢無法到達主機時查詢 NodeManager 中的節點狀態。如果 NodeManager 顯示節點處於非作用中,Presto 會放棄進一步重試,使查詢失敗並傳回 NODE_DECOMMISSIONED
錯誤。
以下一組組態參數可讓您在節點終止時,控制並自訂 Presto 的行為。
設定 | 描述 | 預設 |
---|---|---|
query.remote-task.max-backoff-duration |
協調器繼續嘗試從工作節點擷取遠端任務狀態的持續時間。 | 10 分鐘 |
query.remote-task.quick-terminate-node-failure |
如果協調器無法到達節點,或無法連線到在該節點上執行的工作者,則啟動快速節點故障。 節點查詢失敗,Amazon EMR 會從可用工作者清單中移除該節點。當這種情況發生時,您無法使用該節點來排定新的查詢。 當您將此值設定為 |
true |
query.remote-task.terminate-on-connect-exception |
指定當主機可連接,但協調器無法連線到該主機的工作者處理序時,Amazon EMR 是否應該移除節點。這個值設為 true 時,如果無法連線到主機,您將啟動快速查詢失敗。 |
false |