本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為您的 Amazon EMR叢集設定統一執行個體群組
使用執行個體群組組態,每個節點類型 (主要、核心或任務) 包含相同的執行個體類型和適用於以下執行個體的相同購買選項:隨需或 Spot。您建立執行個體群組時,您會指定這些設定。這些設定稍後無法變更。不過,您可以將相同類型的執行個體和購買選項新增到核心和任務執行個體群組。您也可以移除執行個體。
如果叢集的隨需執行個體與您帳戶中可用的開放容量保留 (執行個體類型、平台、租用和可用區域) 的屬性相符,則會自動套用容量保留。您可以針對主要、核心和任務節點使用開放容量保留。但是,在使用執行個體群組佈建叢集時,您無法使用目標容量保留,或防止執行個體在具有相符屬性的開放容量保留中啟動。如果您想要使用目標容量保留或防止執行個體在開放容量保留中啟動,請改用執行個體機群。如需詳細資訊,請參閱在 Amazon 中使用容量保留與執行個體機群 EMR。
若要在叢集建立後新增不同的執行個體類型,您可以新增額外的任務執行個體群組。您可以選擇適用於每個執行個體群組的不同執行個體類型與購買選項。如需詳細資訊,請參閱使用 Amazon EMR叢集擴展來調整不斷變化的工作負載。
在啟動執行個體時,隨需執行個體的容量保留偏好設定會預設為 open
,可讓它在任何具有相符屬性 (執行個體類型、平台、可用區域) 的開放容量保留中執行。如需有關隨需容量保留的詳細資訊,請參閱 在 Amazon 中使用容量保留與執行個體機群 EMR。
這個區段涵蓋建立含統一執行個體群組的叢集。如需透過手動新增或移除執行個體或透過自動擴展來修改現有執行個體群組的更多資訊,請參閱 管理 Amazon EMR叢集。
使用主控台設定統一執行個體群組
使用 AWS CLI 建立具有統一執行個體群組的叢集
若要使用 AWS CLI指定叢集的執行個體群組組態,請使用 create-cluster
命令和 --instance-groups
參數。除非您為執行個體群組指定BidPrice
引數,否則 Amazon 會EMR擔任隨需執行個體選項。如需 create-cluster
命令的範例,該命令會啟動含隨需執行個體的統一執行個體群組與各種叢集選項,請在命令列中鍵入 aws emr create-cluster help
或參閱《AWS CLI 命令參考》中的 create-cluster。
您可以使用 AWS CLI ,在使用 Spot 執行個體的叢集中建立統一執行個體群組。提供的 Spot 價格取決於可用區域。使用 CLI或 時API,您可以使用 AvailabilityZone
引數 (如果您使用的是 EC2-classic 網路) 或 --ec2-attributes
參數的SubnetID
引數來指定可用區域。您選擇的可用區域或子網路會套用至叢集,因此會將其用於所有執行個體群組。如果您未明確指定可用區域或子網路,Amazon 會在啟動叢集時以最低 Spot 價格EMR選取可用區域。
以下範例示範 create-cluster
命令,該命令會建立主要、核心和兩個任務執行個體群組,而這些群組都使用 Spot 執行個體。myKey
將 取代為 Amazon EC2金鑰對的名稱。
注意
包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。
aws emr create-cluster --name "
MySpotCluster
" \ --release-labelemr-7.5.0
\ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-groups \ InstanceGroupType=MASTER
,InstanceType=m5.xlarge
,InstanceCount=1
,BidPrice=0.25
\ InstanceGroupType=CORE
,InstanceType=m5.xlarge
,InstanceCount=2
,BidPrice=0.03
\ InstanceGroupType=TASK
,InstanceType=m5.xlarge
,InstanceCount=4
,BidPrice=0.03
\ InstanceGroupType=TASK
,InstanceType=m5.xlarge
,InstanceCount=2
,BidPrice=0.04
您可以使用 CLI建立統一執行個體群組叢集,AMI為執行個體群組中的每個執行個體類型指定唯一的自訂。這可讓您在相同執行個體群組中使用不同的執行個體架構。每個執行個體類型都必須使用AMI具有相符架構的自訂。例如,您會使用 x86_64 架構自訂 設定 m5.xlarge 執行個體類型AMI,並使用對應的 AWS AARCH64
(ARM) 架構自訂 設定 m6g.xlarge 執行個體類型AMI。
下列範例顯示使用兩種執行個體類型建立的統一執行個體群組叢集,每個叢集都有自己的自訂 AMI。請注意,自訂僅在執行個體類型層級AMIs指定,而不是在叢集層級指定。這是為了避免執行個體類型AMIs與叢集層級AMI的 衝突,這會導致叢集啟動失敗。
aws emr create-cluster --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups \ InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 \ InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567
您可以將多個自訂AMIs新增至新增至執行中叢集的執行個體群組。CustomAmiId
引數可以與 add-instance-groups
命令搭配使用,如下列範例所示。
aws emr add-instance-groups --cluster-id j-123456 \ --instance-groups \ InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456
使用 Java SDK 建立執行個體群組
您會將 InstanceGroupConfig
物件個體化,該物件會指定叢集的執行個體群組組態。若要使用 Spot 執行個體,您會針對 withBidPrice
物件設定 withMarket
和 InstanceGroupConfig
屬性。下列程式碼顯示如何定義執行 Spot 執行個體的主要、核心和任務執行個體群組。
InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.25"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.03"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(2) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.10");