複数のプライマリノードを持つ Amazon EMR クラスターの起動 - Amazon EMR

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

複数のプライマリノードを持つ Amazon EMR クラスターの起動

このトピックでは、複数のプライマリノードを持つ Amazon EMR クラスターを起動するための設定の詳細と例を示します。

注記

Amazon EMR は、複数のプライマリノードを持つすべてのクラスターに対して自動終了保護を有効にし、クラスターの作成時に提供した自動終了設定をオーバーライドします。複数のプライマリノードを持つクラスターをシャットダウンするには、まずクラスター属性を変更して、終了保護を無効にする必要があります。手順については、複数のプライマリノードを持つ Amazon EMR クラスターの終了 を参照してください。

前提条件

  • パブリックおよびプライベート VPC サブネットの両方で、複数のプライマリノードを持つ Amazon EMR クラスターを起動できます。EC2-Classic はサポートされません。パブリックサブネットで複数のプライマリノードを持つ Amazon EMR クラスターを起動するには、コンソールで [IPv4 の自動割り当て] を選択するか、次のコマンドを実行して、このサブネットのインスタンスがパブリック IP アドレスを受け取ることができるようにする必要があります。22XXXX01 をサブネット ID に置き換えます。

    aws ec2 modify-subnet-attribute --subnet-id subnet-22XXXX01 --map-public-ip-on-launch
  • 複数のプライマリノードを持つ Amazon EMR クラスターで Hive、Hue、または Oozie を実行するには、外部メタストアを作成する必要があります。詳細については、「Hive の外部メタストアの設定」、「Amazon RDS でのリモートデータベースと Hue の使用」、または「Apache Oozie」を参照してください。

  • クラスターで Kerberos 認証を使用するには、外部 KDC を設定する必要があります。詳細については、「Amazon EMR 上の Kerberos の設定」を参照してください。

複数のプライマリノードを持つ Amazon EMR クラスターの起動

インスタンスグループまたはインスタンスフリートを使用する場合、複数のプライマリノードを持つクラスターを起動できます。複数のプライマリノードを持つインスタンスグループを使用するときは、プライマリノードインスタンスグループにインスタンスカウント値 3 を指定する必要があります。複数のプライマリノードでインスタンスフリートを使用する場合、プライマリインスタンスフリートには 3TargetOnDemandCapacity0TargetSpotCapacity を、そしてプライマリフリート用に設定する各インスタンスタイプには 1WeightedCapacity を指定する必要があります。

次の例は、インスタンスグループとインスタンスフリートの両方にデフォルト AMI またはカスタム AMI を使用してクラスターを起動する方法を示します。

注記

AWS CLIを使用して複数のプライマリノードを持つ Amazon EMR クラスターを起動するときに、サブネット ID を指定する必要があります。次の例の 22XXXX01 および 22XXXX02 は、お使いのサブネット ID と置き換えてください。

Default AMI, instance groups
例 – デフォルト AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスグループクラスターの起動
aws emr create-cluster \ --name "ha-cluster" \ --release-label emr-6.15.0 \ --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
Default AMI, instance fleets
例 – デフォルト AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスフリートクラスターの起動
aws emr create-cluster \ --name "ha-cluster" \ --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 '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \ --service-role EMR_DefaultRole \ --applications Name=Hadoop Name=Spark
Custom AMI, instance groups
例 – カスタム AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスグループクラスターの起動
aws emr create-cluster \ --name "custom-ami-ha-cluster" \ --release-label emr-6.15.0 \ --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 \ --custom-ami-id ami-MyAmiID
Custom AMI, instance fleets
例 – カスタム AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスフリートクラスターの起動
aws emr create-cluster \ --name "ha-cluster" \ --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 '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \ --service-role EMR_DefaultRole \ --applications Name=Hadoop Name=Spark \ --custom-ami-id ami-MyAmiID

複数のプライマリノードを持つ Amazon EMR クラスターの終了

複数のプライマリノードを持つ Amazon EMR クラスターを終了するには、次の例に示すように、クラスターの終了前に終了保護を無効にする必要があります。j-3KVTXXXXXX7UG をクラスター ID に置き換えます。

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected aws emr terminate-clusters --cluster-id j-3KVTXXXXXX7UG