翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon とEC2プレイスメントグループEMRの統合
Amazon で Amazon EMRの複数のプライマリノードクラスターを起動する場合EC2、プレイスメントグループ戦略を使用して、プライマリノードインスタンスをデプロイしてハードウェア障害から保護する方法を指定できます。
プレイスメントグループ戦略は、複数のプライマリノードクラスターのオプションとして Amazon EMRバージョン 5.23.0 以降でサポートされています。現在、プレイスメントグループ機能ではプライマリノードタイプのみがサポートされており、SPREAD
戦略は、これらのプライマリノードに適用されます。SPREAD
戦略では、ハードウェア障害の発生時に複数のプライマリノードが失われるのを防ぐため、少数のインスタンスを別個の基盤となるハードウェア全体に配置します。リクエストを実行するための固有のハードウェアが不足している場合、インスタンスの起動リクエストが失敗する可能性があることに注意してください。EC2 配置戦略と制限の詳細については、「Linux インスタンス用ユーザーガイド」の「配置グループ」を参照してください。 EC2
Amazon には、 AWS リージョンごとに起動できるプレイスメントグループ戦略対応クラスターが EC2 500 個という初期制限があります。 AWS サポートに連絡して、許可されたプレイスメントグループの数の増加をリクエストしてください。Amazon がEMR作成するEC2プレイスメントグループを特定するには、Amazon が Amazon EMRプレイスメントグループ戦略EMRに関連付けるキーと値のペアを追跡します。EC2 クラスターインスタンスタグの詳細については、「」を参照してくださいAmazon でクラスターインスタンスを表示する EC2。
プレイスメントグループ管理ポリシーを Amazon にアタッチする EMRrole
プレイスメントグループ戦略には、Amazon AmazonElasticMapReducePlacementGroupPolicy
が Amazon でプレイスメントグループを作成、削除、および記述EMRできるようにする というマネージドポリシーが必要ですEC2。複数のプライマリノードを持つ Amazon EMRクラスターを起動EMRする前に、Amazon のサービスロールAmazonElasticMapReducePlacementGroupPolicy
に をアタッチする必要があります。
または、プレイスメントグループAmazonEMRServicePolicy_v2
管理ポリシーの代わりに、 管理ポリシーを Amazon EMRサービスロールにアタッチすることもできます。 AmazonEMRServicePolicy_v2
は、 EC2と同じ Amazon のプレイスメントグループへのアクセスを許可しますAmazonElasticMapReducePlacementGroupPolicy
。詳細については、「Amazon のサービスロール EMR (EMR ロール)」を参照してください。
AmazonElasticMapReducePlacementGroupPolicy
管理ポリシーは、Amazon によって作成および管理される次のJSONテキストですEMR。
AmazonElasticMapReducePlacementGroupPolicy
管理ポリシーは自動的に更新されるため、ここに示すポリシーは である可能性があります out-of-date。 AWS マネジメントコンソールを使用して、現在のポリシーを表示します。
{
"Version":"2012-10-17",
"Statement":[
{
"Resource":"*",
"Effect":"Allow",
"Action":[
"ec2:DeletePlacementGroup",
"ec2:DescribePlacementGroups"
]
},
{
"Resource":"arn:aws:ec2:*:*:placement-group/pg-*",
"Effect":"Allow",
"Action":[
"ec2:CreatePlacementGroup"
]
}
]
}
プレイスメントグループ戦略を使用して複数のプライマリノードを持つ Amazon EMRクラスターを起動する
プレイスメントグループ戦略を使用して複数のプライマリノードを持つ Amazon EMRクラスターを起動するには、プレイスメントグループ管理ポリシーを Amazon EMRロールAmazonElasticMapReducePlacementGroupPolicy
にアタッチします。詳細については、「プレイスメントグループ管理ポリシーを Amazon にアタッチする EMRrole」を参照してください。
このロールを使用して複数のプライマリノードを持つ Amazon EMRクラスターを起動するたびに、Amazon はプライマリノードに SPREAD
戦略が適用されたクラスターの起動EMRを試みます。プレイスメントグループ管理ポリシーがアAmazonElasticMapReducePlacementGroupPolicy
タッチされていないロールを使用する場合、Amazon はプレイスメントグループ戦略なしで複数のプライマリノードを持つ Amazon EMRクラスターの起動EMRを試みます。
Amazon EMRAPIまたは を使用して、 placement-group-configs
パラメータを持つ複数のプライマリノードを持つ Amazon EMRクラスターを起動する場合CLI、Amazon EMRroleは、Amazon にプレイスメントグループ管理ポリシーがアAmazonElasticMapReducePlacementGroupPolicy
タッチされているEMR場合にのみクラスターを起動します。Amazon にポリシーがアタッチEMRroleされていない場合、複数のプライマリノードを持つ Amazon EMRクラスターの起動は失敗します。
- Amazon EMR API
-
例 — プレイスメントグループ戦略を使用して、Amazon から複数のプライマリノードを持つインスタンスグループクラスターを起動する EMR API
RunJobFlow アクションを使用して複数のプライマリノードを持つ Amazon EMRクラスターを作成する場合は、 PlacementGroupConfigs
プロパティを次のように設定します。現在、MASTER
インスタンスロールは、自動的に SPREAD
をプレイスメントグループ戦略として使用します。
{
"Name":"ha-cluster",
"PlacementGroupConfigs":[
{
"InstanceRole":"MASTER"
}
],
"ReleaseLabel": emr-6.15.0,
"Instances":{
"ec2SubnetId":"subnet-22XXXX01",
"ec2KeyName":"ec2_key_pair_name",
"InstanceGroups":[
{
"InstanceCount":3,
"InstanceRole":"MASTER",
"InstanceType":"m5.xlarge"
},
{
"InstanceCount":4,
"InstanceRole":"CORE",
"InstanceType":"m5.xlarge"
}
]
},
"JobFlowRole":"EMR_EC2_DefaultRole",
"ServiceRole":"EMR_DefaultRole"
}
-
置換 ha-cluster
を高可用性クラスターの名前に置き換えます。
-
置換 subnet-22XXXX01
サブネット ID を指定します。
-
を置き換える ec2_key_pair_name
を、このクラスターのEC2キーペアの名前に置き換えます。EC2 キーペアはオプションであり、 SSHを使用してクラスターにアクセスする場合にのみ必要です。
- AWS CLI
-
例 - プレイスメントグループ戦略を使用して、 AWS Command Line Interfaceから複数のプライマリノードを持つインスタンスフリートクラスターを起動する
RunJobFlow アクションを使用して複数のプライマリノードを持つ Amazon EMRクラスターを作成する場合は、 PlacementGroupConfigs
プロパティを次のように設定します。現在、MASTER
インスタンスロールは、自動的に SPREAD
をプレイスメントグループ戦略として使用します。
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER \
--release-label emr-6.15.0 \
--instance-fleets '[
{
"InstanceFleetType": "MASTER",
"TargetOnDemandCapacity": 3,
"TargetSpotCapacity": 0,
"LaunchSpecifications": {
"OnDemandSpecification": {
"AllocationStrategy": "lowest-price"
}
},
"InstanceTypeConfigs": [
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.xlarge"
},
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.2xlarge"
},
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.4xlarge"
}
],
"Name": "Master - 1"
},
{
"InstanceFleetType": "CORE",
"TargetOnDemandCapacity": 5,
"TargetSpotCapacity": 0,
"LaunchSpecifications": {
"OnDemandSpecification": {
"AllocationStrategy": "lowest-price"
}
},
"InstanceTypeConfigs": [
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.xlarge"
},
{
"WeightedCapacity": 2,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.2xlarge"
},
{
"WeightedCapacity": 4,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.4xlarge"
}
],
"Name": "Core - 2"
}
]' \
--ec2-attributes '{
"KeyName": "ec2_key_pair_name",
"InstanceProfile": "EMR_EC2_DefaultRole",
"SubnetIds": [
"subnet-22XXXX01",
"subnet-22XXXX02"
]
}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
-
置換 ha-cluster
を高可用性クラスターの名前に置き換えます。
-
を置き換える ec2_key_pair_name
を、このクラスターのEC2キーペアの名前に置き換えます。EC2 キーペアはオプションであり、 SSHを使用してクラスターにアクセスする場合にのみ必要です。
-
置換 subnet-22XXXX01
また、subnet-22XXXX02
をサブネット で使用しますIDs。
プレイスメントグループ戦略を使用せずに複数プライマリノードを持つクラスターを起動する
プレイスメントグループ戦略を使用しないで複数プライマリノードを持つクラスターでプライマリノードを起動する場合、次のいずれかを実行する必要があります。
- Amazon EMR API
-
例 — Amazon を使用して、プレイスメントグループ戦略を使用せずに複数のプライマリノードを持つクラスターを起動しますEMRAPI。
RunJobFlow アクションを使用して複数のプライマリノードを持つクラスターを作成する場合は、 PlacementGroupConfigs
プロパティを次のように設定します。
{
"Name":"ha-cluster",
"PlacementGroupConfigs":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"NONE"
}
],
"ReleaseLabel":"emr-5.30.1",
"Instances":{
"ec2SubnetId":"subnet-22XXXX01",
"ec2KeyName":"ec2_key_pair_name",
"InstanceGroups":[
{
"InstanceCount":3,
"InstanceRole":"MASTER",
"InstanceType":"m5.xlarge"
},
{
"InstanceCount":4,
"InstanceRole":"CORE",
"InstanceType":"m5.xlarge"
}
]
},
"JobFlowRole":"EMR_EC2_DefaultRole",
"ServiceRole":"EMR_DefaultRole"
}
-
置換 ha-cluster
を高可用性クラスターの名前に置き換えます。
-
置換 subnet-22XXXX01
サブネット ID を指定します。
-
を置き換える ec2_key_pair_name
を、このクラスターのEC2キーペアの名前に置き換えます。EC2 キーペアはオプションであり、 SSHを使用してクラスターにアクセスする場合にのみ必要です。
- Amazon EMR CLI
-
例 — Amazon を使用して、プレイスメントグループ戦略なしで複数のプライマリノードを持つクラスターを起動しますEMRCLI。
RunJobFlow アクションを使用して複数のプライマリノードを持つクラスターを作成する場合は、 PlacementGroupConfigs
プロパティを次のように設定します。
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER,PlacementStrategy=NONE \
--release-label emr-5.30.1 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
-
置換 ha-cluster
を高可用性クラスターの名前に置き換えます。
-
置換 subnet-22XXXX01
サブネット ID を指定します。
-
を置き換える ec2_key_pair_name
を、このクラスターのEC2キーペアの名前に置き換えます。EC2 キーペアはオプションであり、 SSHを使用してクラスターにアクセスする場合にのみ必要です。
複数のプライマリノードを持つクラスターにアタッチされたプレイスメントグループ戦略設定の確認
Amazon EMR describe クラスターを使用してAPI、複数のプライマリノードを持つクラスターにアタッチされたプレイスメントグループ戦略設定を確認できます。
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}