複数のプライマリノードを持つ 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 クラスターの起動

複数のプライマリノードを持つ Amazon EMR クラスターを起動するときは、プライマリノードインスタンスグループにインスタンスカウント値 3 を指定する必要があります。次の例は、デフォルト AMI またはカスタム AMI を使用してクラスターを起動する方法を示しています。

注記

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

例 – デフォルト AMI を使用した、複数のプライマリノードを持つ Amazon EMR クラスターの起動
aws emr create-cluster \ --name "ha-cluster" \ --release-label emr-5.36.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
例 – カスタム AMI を使用した、複数のプライマリノードを持つ Amazon EMR クラスターの起動
aws emr create-cluster \ --name "custom-ami-ha-cluster" \ --release-label emr-5.36.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 \ --custom-ami-id ami-MyAmiID
例 — 外部 Hive メタストアを使用した、複数のプライマリノードを持つ Amazon EMR クラスターの起動

複数のプライマリノードを持つ Amazon EMR クラスターで Hive を実行するには、次の例で示すように Hive 用の外部メタストアを指定する必要があります。

  1. Hive メタストアの認証情報を含む一時的な hiveConfiguration.json ファイルを作成します。

    [ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql:\/\/hostname:3306\/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } } ]
  2. Hive メタストアでクラスターを起動します。

    aws emr create-cluster \ --name "ha-cluster-with-hive-metastore" \ --release-label emr-5.36.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 Name=Hive \ --configurations ./hiveConfiguration.json

複数のプライマリノードを持つ 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