在 Amazon 中使用受管擴展 EMR - Amazon EMR

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

在 Amazon 中使用受管擴展 EMR

重要

我們強烈建議您使用最新的 Amazon EMR 版本 (Amazon EMR 7.2.0) 進行受管擴展。在某些早期版本中,可能會遇到間歇性的應用程式故障或擴展延遲。Amazon 透過 5.x 版本 5.30.2、5.31.1、5.32.1、5.33.1 及更高版本以及 6.x 版本 6.1.1、6.2.1、6.3.1 及更高版本EMR解決了此問題。如需有關區域和版本可用性的詳細資訊,請參閱 受管擴展可用性

概觀

使用 Amazon 5.30.0 及更高EMR版本(Amazon EMR 6.0.0 除外),您可以啟用 Amazon EMR 託管擴展。受管擴展功能可讓您根據工作負載自動增加或減少叢集中的執行個體或單位數目。Amazon 會EMR持續評估叢集指標,以做出擴展決策,以便最佳化叢集的成本和速度。受管擴展功能可用於由執行個體群組或執行個體機群組成的叢集。

受管擴展可用性

  • 在下文中 AWS 區域,Amazon EMR 6.14.0 及更高版本提供 Amazon EMR 受管擴展:

    • 亞太區域 (海德拉巴) (ap-south-2)

    • 亞太區域 (雅加達) (ap-southeast-3)

    • 歐洲 (西班牙) (eu-south-2)

  • 在下文中 AWS 區域,Amazon EMR 管理擴展可在 Amazon EMR 5.30.0 和 6.1.0 及更高版本中使用:

    • 美國東部 (維吉尼亞北部) (us-east-1)

    • 美國東部 (俄亥俄) (us-east-2)

    • 美國西部 (奧勒岡) (us-west-2)

    • 美國西部 (加利佛尼亞北部) (us-west-1)

    • 非洲 (開普敦) (af-south-1)

    • 亞太區域 (香港) (ap-east-1)

    • 亞太區域 (孟買) (ap-south-1)

    • 亞太區域 (首爾) (ap-northeast-2)

    • 亞太區域 (新加坡) (ap-southeast-1)

    • 亞太區域 (雪梨) (ap-southeast-2)

    • 亞太區域 (東京) (ap-northeast-1)

    • 加拿大 (中部) (ca-central-1)

    • 南美洲 (聖保羅) (sa-east-1)

    • 歐洲 (法蘭克福) (eu-central-1)

    • 歐洲 (愛爾蘭) (eu-west-1)

    • 歐洲 (倫敦) (eu-west-2)

    • 歐洲 (米蘭) (eu-south-1)

    • 歐洲 (巴黎) (eu-west-3)

    • 歐洲 (斯德哥爾摩) (eu-north-1)

    • 中國 (北京) (cn-north-1)

    • 中國 (寧夏) (cn-northwest-1)

    • AWS GovCloud (美國東部) (us-gov-east-1)

    • AWS GovCloud (美國西部) (us-gov-west-1)

  • Amazon EMR 受管擴展僅適YARN用於 Spark、Hadoop、蜂巢和 Flink 等應用程式。它不支持不基於的應用程序YARN,例如 Presto 和HBase.

受管擴展參數

必須為受管擴展設定下列參數。這個限制僅適用於核心節點和任務節點。無法在初始設定後擴展主節點。

  • Mini@@ mum (MinimumCapacityUnits) — 叢集中允許EC2容量的下限。它是透過虛擬中央處理單元 (vCPU) 核心或執行個體群組的執行個體測量。透過執行個體機群的單位進行測量。

  • Maxi@@ mum (MaximumCapacityUnits) — 叢集中允許EC2容量的上限。它是透過虛擬中央處理單元 (vCPU) 核心或執行個體群組的執行個體測量。透過執行個體機群的單位進行測量。

  • 隨需限制 (MaximumOnDemandCapacityUnits) (選用) — 叢集中隨需市場類型允許EC2容量的上限。如果未指定此參數,它預設為 MaximumCapacityUnits 的值。

    • 此參數用於分割隨需執行個體和 Spot 執行個體之間的容量配置。例如,如果您將最小參數設定為 2 個執行個體,最大參數為 100 個執行個體,隨需限制為 10 個執行個體,則 Amazon EMR 受管擴展可擴展至 10 個隨需執行個體,並將剩餘容量分配給 Spot 執行個體。如需詳細資訊,請參閱節點配置案例

  • 最大核心節點 (MaximumCoreCapacityUnits) (選用) — 叢集中核心節點類型允許EC2容量的上限。如果未指定此參數,它預設為 MaximumCapacityUnits 的值。

    • 此參數用於分割核心節點和任務節點之間的容量配置。例如,如果將最小參數設定為 2 個執行個體,最大值為 100 個執行個體,最大核心節點為 17 個執行個體,則 Amazon EMR 受管擴展可擴展至 17 個核心節點,並將剩餘的 83 個執行個體配置到任務節點。如需詳細資訊,請參閱節點配置案例

如需有關受管擴展參數的詳細資訊,請參閱 ComputeLimits

Amazon EMR 受管擴展的注意事項

  • 有限版本 AWS 區域 和 Amazon EMR 版本支援受管擴展。如需詳細資訊,請參閱受管擴展可用性

  • 您必須為 Amazon EMR 受管擴展設定必要的參數。如需詳細資訊,請參閱受管擴展參數

  • 若要使用受管擴展,指標收集器程序必須能夠連線至公用API端點,以便在 Gateway 中進行管理擴展。API如果搭配使用私人DNS名稱 Amazon Virtual Private Cloud,受管理縮放功能將無法正常運作。為了確保受管擴展正常運作,建議您採取下列其中一個動作:

  • 如果您的YARN工作在縮減期間間歇性地緩慢,且 YARN Resource Manager 記錄檔顯示在此期間,大部分節點都遭到拒絕列出,您可以調整停用逾時臨界值。

    spark.blacklist.decommissioning.timeout 從一小時縮短到一分鐘,使節點可用於其他擱置中的容器,以繼續任務處理。

    您還應該設置YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs為更大的值,以確保當最長的「Spark 任務」仍在節點上運行時,Amazon EMR 不會強制終止節點。目前的預設值為 60 分鐘,這表示當節點進入解YARN散狀態後,強制終止容器 60 分鐘。

    下列範例YARN資源管理員記錄行顯示新增至解決狀態的節點:

    2021-10-20 15:55:26,994 INFO org.apache.hadoop.YARN.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []

    請參閱有關 Amazon 如何在節點停用期間與YARN拒絕清單EMR整合、Amazon 中節點可以拒絕列出的案例,EMR以設定 Spark 節點停用行為的詳細資訊。

  • EBS磁碟區過度使用可能會導致受管擴展問題。我們建議您將EBS磁碟區的使用率維持在 90% 以下。如需詳細資訊,請參閱執行個體儲存體

  • Amazon CloudWatch 指標對於 Amazon EMR 託管擴展的操作至關重要。我們建議您密切監控 Amazon CloudWatch 指標,以確保資料不會遺失。如需如何設定 CloudWatch 警示以偵測遺失指標的詳細資訊,請參閱使用 Amazon CloudWatch 警示

  • 在未安裝 Presto 的情況下,5.30.0 和 5.30.1 叢集上的受管擴展操作可能會導致應用程式失敗,或致使統一執行個體群組或執行個體機群停留在 ARRESTED 狀態,尤其當縮減規模操作緊隨縱向擴展操作之後時。

    因應措施是在使用 Amazon EMR 版本 5.30.0 和 5.30.1 建立叢集時,選擇 Presto 作為要安裝的應用程式,即使您的任務不需要 Presto 也是如此。

  • 當您設定 Amazon EMR 受管擴展的最大核心節點和隨需限制時,請考慮執行個體群組和執行個體叢集之間的差異。每個執行個體包含相同的執行個體類型和適用於以下執行個體的相同購買選項:隨需或 Spot。對於每個執行個體機群,您可以指定最多 5 個執行個體類型,它可以佈建為隨需和 Spot 執行個體。如需詳細資訊,請參閱使用執行個體機群或統一執行個體群組建立叢集執行個體機群選項節點配置案例

  • 使用 Amazon EMR 5.30.0 及更高版本時,如果將主安全群組的預設「允許所有輸出規則」移除為 0.0.0.0/,則必須新增規則,允許對安全群組進行輸出連線,以便在TCP連接埠 9443 上進行服務存取。用於服務存取的安全性群組也必須允許來自主要安全性群組的連接埠 9443 上的輸入TCP流量。如需設定安全群組的詳細資訊,請參閱主執行個體 (私有子網路) 的 Amazon EMR 受管安全群組。

  • 受管擴展不支援YARN節點標籤功能。避免在具有受管擴展的叢集上使用節點標籤。例如,不允許執行程式只在任務節點上執行。當您在 Amazon EMR 叢集中使用節點標籤時,您可能會發現叢集沒有擴展,這可能會導致應用程式速度變慢。

  • 您可以使用 AWS CloudFormation 來設定 Amazon EMR 受管擴展。如需詳細資訊,請參閱《AWS CloudFormation 使用指南》中的AWSEMR::: cluster

功能歷史記錄

此表格列出 Amazon EMR 受管擴展功能的更新。

版本日期 功能 Amazon EMR 版
2024年3月31 日 ap-south-2亞太區域 (海德拉巴) 區域提供管理擴展。 6.14.0 及更新版本
2024年2月13日 eu-south-2歐洲 (西班牙) 區域提供管理擴展。 6.14.0 及更新版本
2023 年 10 月 10 日 ap-southeast-3 亞太區域 (雅加達) 可使用受管擴展。 6.14.0 及更新版本
2023 年 7 月 28 日 當 Amazon 目前執行個體群組擴展延遲時,增強的受管擴展功能可在擴展時切換到不同的任務執行個EMR體群組。 5.34.0 版和更新版本、6.4.0 版和更新版本
2023 年 6 月 16 日 增強了受管擴展功能,可了解執行應用程式主程序的節點,因此不會縮減這些節點。如需詳細資訊,請參閱了解節點配置策略和案例 5.34.0 版和更新版本、6.4.0 版和更新版本
2022 年 3 月 21 日 新增了縮減叢集時使用的 Spark 隨機資料感知功能。對於已啟用 Apache Spark 和受管擴展功能的 Amazon EMR 叢集,Amazon 會EMR持續監控 Spark 執行程式和中繼隨機播放資料位置。使用這項資訊,Amazon 只能EMR縮減未充分利用的執行個體,而這些執行個體不包含主動使用的隨機播放資料。這可防止重新計算遺失的隨機資料,有助於降低成本並提高作業效能。如需詳細資訊,請參閱 Spark 程式設計指南 5.34.0 版和更新版本、6.4.0 版和更新版本