Amazon 叢集的EMR叢集縮減選項 - Amazon EMR

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

Amazon 叢集的EMR叢集縮減選項

注意

自 Amazon 5.10.0 EMR版以來,不再支援縮減規模行為選項。由於在 Amazon 中引入每秒計費EC2,Amazon EMR叢集的預設縮減行為現在會在任務完成時終止。

使用 Amazon 5.1.0 版到 5.9.1 EMR版時,有兩種縮減規模行為的選項:在 Amazon EC2帳單的執行個體小時界限終止,或在任務完成時終止。從 Amazon 5.10.0 EMR版開始,由於在 Amazon 中引入每秒計費,執行個體小時界限終止的設定已棄用EC2。若版本中有在執行個體每小時範圍內終止的選項,也不建議指定該選項。

警告

如果您使用 AWS CLI 向 modify-instance-groups 發行 EC2InstanceIdsToTerminate,這些執行個體會立即終止,而不考慮這些設定,而且無論其上執行的應用程式狀態為何。以此種方式終止執行個體,可能會導致資料損失,叢集也可能會出現意料外的行為。

指定任務完成時終止時,Amazon 會EMR拒絕列出任務並從節點中消耗任務,然後再終止 Amazon EC2執行個體。指定任一行為後,如果 Amazon 可能會導致損毀,EMR則不會終止核心EC2執行個體群組中的 Amazon HDFS 執行個體。

於任務完成時終止

Amazon EMR可讓您縮減叢集規模,而不會影響工作負載。在調整規模操作期間YARN,Amazon 會在核心和任務節點上EMR正常停用 HDFS、 和其他精靈,而不會遺失資料或中斷任務。只有在指派給群組的工作已完成且處於閒置狀態時,Amazon EMR才會減少執行個體群組大小。對於 YARN NodeManager Graceful 停用,您可以手動調整節點等待停用的時間。

可使用 YARN-site 組態分類內的屬性來加以設定。使用 Amazon 5.12.0 版及更新EMR版本,指定 YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs 屬性。使用較早的 Amazon EMR版本,指定 YARN.resourcemanager.decommissioning.timeout 屬性。

如果停用逾時通過時仍有執行中的容器或YARN應用程式,則會強制停用節點,並重新YARN排程其他節點上受影響的容器。預設值為 3600 秒 (1 小時)。可將此逾時值隨意設為較高的值,強迫逐漸減少等待更長時間。如需詳細資訊,請參閱 Apache Hadoop 文件YARN中的節點容限停用

任務節點群組

Amazon 會以EMR智慧方式選取沒有任務的執行個體,這些任務正在針對任何步驟或應用程式執行,並先從叢集中移除這些執行個體。如果叢集中的所有執行個體都在使用中,Amazon EMR會等待執行個體上的任務完成,然後再從叢集中移除。預設等待時間為 1 小時。可以透過 YARN.resourcemanager.decommissioning.timeout 設定變更此值。Amazon 會EMR動態使用新的設定。您可以將此設定為任意較大的數字,以確保 Amazon 在減少叢集大小時EMR不會終止任何任務。

核心節點群組

在核心節點上,必須停用 YARN NodeManager 和 HDFS DataNode 精靈,執行個體群組才能減少。對於 YARN,優雅減少可確保標記為停用的節點只有在沒有待處理或不完整的容器或應用程式時才會轉換為 DECOMMISSIONED 狀態。若開始除役時,節點上就沒有正在執行的容器,則除役工作會立即完成。

對於 HDFS,優雅地減少可確保 的目標容量足夠HDFS大,以符合所有現有的區塊。如果目標容量不夠大,則只會停用部分數量的核心執行個體,以便剩餘的節點可以處理目前位於 的資料HDFS。您應該確保額外的HDFS容量,以允許進一步停用。在嘗試減少執行個體群組之前,也應該嘗試將寫入 I/O 降至最低。過多的寫入 I/O 可能會延遲完成調整大小操作。

另一個限制是預設的複寫係數,/etc/hadoop/conf/hdfs-site 中的 dfs.replication。建立叢集時,Amazon 會根據叢集中的執行個體數目來EMR設定值:1使用 1-3 個執行個體、2使用 4-9 個執行個體的叢集,以及使用 10 個以上的執行個體的3叢集。

警告
  1. 如果單一節點故障,在少於四個節點的叢集上dfs.replication設定為 1,可能會導致HDFS資料遺失。建議您對生產工作負載使用至少具有四個核心節點的叢集。

  2. Amazon EMR不允許叢集將核心節點擴展到 以下dfs.replication。例如,如果 dfs.replication = 2,核心節點的最小數量為 2。

  3. 當您使用受管擴展即自動擴展,或選擇手動調整叢集大小時,建議您將 dfs.replication 設定為 2 或更高。

優雅縮減不會讓您將核心節點減少到HDFS複寫係數以下。這是為了允許 HDFS因複本不足而關閉檔案。若要規避此限制,請降低複寫係數並重新啟動NameNode 常駐程式。