Amazon とEC2プレイスメントグループEMRの統合 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 AmazonElasticMapReducePlacementGroupPolicyからプレイスメントグループ管理ポリシーを削除するEMRrole、または

  • Amazon を使用するEMRAPIか、プレイスメントグループ戦略NONEとして CLIを選択して、 placement-group-configsパラメータを使用して複数のプライマリノードを持つクラスターを起動します。

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" } ] } }