ゲートウェイは、E-MapReduce(EMR)クラスターにジョブを送信し、クラスターを安全に分離するために使用されます。 EMR は、Alibaba Cloud Elastic Compute Service(ECS)インスタンスにゲートウェイをデプロイするために使用できる EMR-CLI ツールを提供しています。 このトピックの操作を実行して、DataLake、Dataflow、またはオンライン分析処理(OLAP)クラスターのゲートウェイをデプロイできます。
前提条件
DataLake クラスター、Dataflow クラスター、または OLAP クラスターが作成されており、クラスターは実行中状態です。 クラスターの作成方法の詳細については、クラスターを作成する をご参照ください。
制限事項
このトピックは、DataLake クラスター、Dataflow クラスター、および OLAP クラスターのゲートウェイをデプロイする場合にのみ適用されます。
Hadoop クラスターと Kafka クラスターのゲートウェイをデプロイする方法の詳細については、ゲートウェイクラスターを作成する をご参照ください。
説明2022 年 12 月 19 日 17:00(UTC+8)以降に初めて EMR クラスターを作成する場合、Hadoop クラスターまたは Kafka クラスターを作成することはできません。
EMR クラスターをホストする ECS インスタンスにゲートウェイをデプロイしないことをお勧めします。 そうしないと、EMR クラスターが実行される環境がゲートウェイの影響を受けます。
ゲートウェイは、EMR-CLI を使用して上書きモードでデプロイされます。 別のゲートウェイが既に存在する ECS インスタンスにゲートウェイをデプロイすると、新しいゲートウェイは元のゲートウェイと同じディレクトリにインストールされ、元のゲートウェイは上書きされます。
このトピックで説明されている操作を実行して、次のサービスのゲートウェイをデプロイできます。HDFS、YARN、HBase、Hive、Spark 2、Spark 3、JindoSDK、Flink、Sqoop、Impala、Presto、Hudi、Iceberg、Tez、および Delta Lake。
ゲートウェイをデプロイする
ECS コンソールで ECS インスタンスを作成します。 詳細については、カスタム起動タブでインスタンスを作成する をご参照ください。
説明作成された ECS インスタンスは、インターネット経由でアクセスできる必要はありません。
次の表に、ECS インスタンスを作成する際のパラメーター設定を示します。
パラメーター
説明
リージョンとゾーン
EMR クラスターと同じリージョンとゾーンに ECS インスタンスを作成する必要があります。
イメージ
このパラメーターで指定されたオペレーティングシステムは、EMR クラスターのオペレーティングシステムと一致する必要があります。
システムディスク
ストレージ容量が 60 GiB 以上の Enhanced SSD(ESSD)を使用することをお勧めします。
ネットワークタイプ
EMR クラスターが存在する仮想プライベートクラウド(VPC)を選択する必要があります。
セキュリティグループ
EMR クラスターのマスターノードグループが属するセキュリティグループを選択する必要があります。 これにより、ECS インスタンスと EMR クラスター間のネットワーク接続が確立されます。
専用の ECS RAM ロールを作成します。
RAM 管理者として RAM コンソール にログオンします。
左側のナビゲーションペインで、
を選択します。[ロール] ページで、[ロールの作成] をクリックします。
[ロールの作成] パネルの [ロールタイプの選択] ステップで、[信頼できるエンティティの選択] で [alibaba Cloud サービス] を選択し、[次へ] をクリックします。
[ロールの設定] ステップで、[RAM ロールの名前] パラメーターを設定し、[信頼できるサービスの選択] ドロップダウンリストから [elastic Compute Service] を選択して、[OK] をクリックします。 たとえば、[RAM ロールの名前] を ECSForEMRGatewayRole に設定できます。
ポリシーを RAM ロールにアタッチします。
[ロールの作成] パネルの [完了] ステップで、[RAM ロールに権限を追加] をクリックします。
表示されるページで、[権限の付与] をクリックします。
[権限の付与] パネルで、[システムポリシー] を選択し、AliyunEMRFullAccess、AliyunOSSFullAccess、および AliyunDLFFullAccess ポリシーを選択して、[権限の付与] をクリックします。
[閉じる] をクリックします。
RAM ロールを ECS インスタンスに割り当てます。
ECS コンソール にログオンします。
左側のナビゲーションペインで、 を選択します。
上部のナビゲーションバーで、ECS インスタンスが存在するリージョンを選択します。
ECS インスタンスを見つけ、[アクション] 列の
アイコンをクリックし、RAMロールのアタッチ/デタッチ[インスタンス設定] セクションの をクリックします。
[RAM ロールの割り当て/割り当て解除] ダイアログボックスで、[RAM ロール] ドロップダウンリストから [ecsforemrgatewayrole] を選択し、[確認] をクリックします。
ECS インスタンスに接続します。 詳細については、インスタンスに接続する をご参照ください。
次のコマンドを実行して、EMR-CLI をインストールします。
regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}
EMR-CLI が正常にインストールされると、次の結果が返されます。
install emrcli success
次のコマンドを実行して、ゲートウェイをデプロイします。
emrcli gateway deploy \ --clusterId <ClusterId> \ --appNames <ApplicationName>
ビジネス要件に基づいてパラメーターを設定します。 次の表に、パラメーターを示します。
パラメーター
必須
説明
clusterId
はい
EMR クラスターの ID。
appNames
いいえ
サービスの名前。 複数のサービスはコンマ(,)で区切ります(例:
HDFS,YARN
)。サービスを指定しない場合、ゲートウェイは、Hive や HDFS など、EMR クラスターのサポートされているすべてのサービスにデプロイされます。
ゲートウェイが正常にデプロイされると、次の結果が返されます。
deployGateway success
重要ゲートウェイがデプロイされると、システム環境変数
JAVA_HOME
の値が/usr/lib/jvm/java-1.8.0
に変更されます。 /etc/profile.d/emr_env.sh ファイルで変数の値を変更できます。 ただし、変更はゲートウェイの機能に影響を与える可能性があります。 注意して進めてください。システム環境変数を有効にするために、ECS インスタンスにログオンします。
オプション ゲートウェイのドメイン名解決を設定します。
重要この手順は、ゲートウェイに Spark サービスが含まれている場合に必要です。
ゾーンを追加します。 詳細については、組み込み権限ゾーンを追加する をご参照ください。
DNS レコードを追加します。 詳細については、DNS レコードを追加する をご参照ください。
次の表に、パラメーターを示します。
パラメーター
説明
[レコードタイプ]
DNS レコードのタイプ。 デフォルト値の [A] を使用します。
[ホスト名]
ゲートウェイのホスト名(例:iZ2zea8r0aht2vzbqci****)。
hostname
コマンドを実行して、ゲートウェイのホスト名を取得できます。[レコード値]
ゲートウェイの内部 IP アドレス。
新しい EMR コンソールの [ノード] タブで、ゲートウェイの内部 IP アドレスを表示できます。
[TTL 期間]
有効期間。 デフォルト値を使用します。
ゲートウェイを管理する
ゲートウェイに関連付けられている EMR クラスターに新しいサービスが追加された場合、または EMR クラスターのサービス設定が変更された場合は、サービスを追加するか、最新のサービス設定をゲートウェイに同期できます。
ゲートウェイにサービスを追加する
EMR クラスターに新しいサービスが追加された場合は、EMR-CLI を使用してサービスをゲートウェイに追加できます。
ゲートウェイにサービスを追加するために使用されるコマンドは、ゲートウェイをデプロイするために使用されるコマンドに似ています。 appNames パラメーターで、ゲートウェイに追加するサービスの名前を指定する必要があります。 既存のサービスは影響を受けません。
emrcli gateway deploy \
--clusterId <ClusterId> \
--appNames <ApplicationName>
サービスがゲートウェイに正常に追加されると、次の結果が返されます。
deployGateway success
EMR クラスターの変更されたサービス設定をゲートウェイに同期する
core-site.xml ファイルの設定など、EMR クラスターのサービス設定を変更した場合は、EMR-CLI を使用して変更された設定をゲートウェイに同期できます。
変更された設定が同期されると、ゲートウェイのサービスの元の設定は上書きされます。 注意して進めてください。
emrcli gateway refreshConfigs \
--clusterId <ClusterId> \
--appNames <ApplicationName>
変更された設定がゲートウェイに正常に同期されると、次の結果が返されます。
refreshConfiguration success
EMR-CLI を管理する
EMR-CLI のバージョンを表示する
次のコマンドを実行して、EMR-CLI のバージョンを表示できます。
emrcli version
コマンドが正常に実行されると、次のような情報が返されます。
2.0.0
EMR-CLI を更新する
ゲートウェイをデプロイする の手順 6 を実行して、EMR-CLI を最新バージョンに更新できます。
FAQ
Q:別のクラスターに切り替えて、そのクラスターのゲートウェイをデプロイするにはどうすればよいですか?
A:次の手順を実行して、別のクラスターに切り替えて、そのクラスターのゲートウェイをデプロイします。
-mv
コマンドを実行して、元のクラスターのファイルをバックアップし、データの損失を防ぎます。 ファイルには、/opt/apps
ディレクトリと/etc/taihao-apps
ディレクトリのファイル、および/etc/profile.d/yarn.sh
ファイルが含まれます。このトピックの操作を再度実行して、新しいクラスターのゲートウェイをデプロイします。