複数のプライマリノードで 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 のリモートデータベースでの Hue の使用RDS、または Apache Oozie を参照してください。

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

複数のプライマリノードで Amazon EMR クラスターを起動する

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

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

注記

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

Default AMI, instance groups
例 – デフォルトを使用して複数のプライマリノードを持つ Amazon EMRインスタンスグループクラスターを起動する AMI
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
例 – デフォルトを使用して複数のプライマリノードを持つ Amazon EMRインスタンスフリートクラスターを起動する AMI
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
例 – カスタムを使用して複数のプライマリノードを持つ Amazon EMRインスタンスグループクラスターを起動する AMI
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
例 – カスタムを使用して複数のプライマリノードを持つ Amazon EMRインスタンスフリートクラスターを起動する AMI
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