Remote Engine Gen2をAmazon EMR用に設定する - Cloud

Talend Remote Engine Gen2クイックスタートガイド

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
インストールとアップグレード
デプロイメント > デプロイ中 > パイプラインの実行
EnrichPlatform
Talend Management Console
Talend Pipeline Designer
Remote Engine Gen2 AMIをAmazon EMRで使用するには、リモートエンジンで実行するLivyインスタンスにはターゲットEMRクラスターからのHadoop設定ファイルが必要です。

始める前に

  • Remote Engine Gen2と同じVPC内で実行しているEMRクラスターがあること。セキュリティグループとVPCの作成方法は、AWS CloudFormationを使ってRemote Engine Gen2を作成を参照してください。
  • Remote Engine Gen2は、EMRのマスターとスレーブの両方のインスタンスにアクセスする必要があります。EMRインスタンスのセキュリティグループを設定して、エンジンのセキュリティグループへのフルアクセスを付与するか、またはAmazonドキュメントに記載されているYARNサービスポートのみ開くことができます。
  • Livyサーバー経由でパイプラインを送信するには、[root] (ルート)ユーザーを使用する必要があります。
  • 偽装パラメーターは、クラスター側でcore-site.xmlファイルに以下のように定義する必要があります:
    <property>
      <name>hadoop.proxyuser.root.groups</name>
      <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
    • Amazonドキュメントの説明に従って以下のパラメーターを使用してクラスターを作成することもできます:
      [
        {
          "Classification": "core-site",
          "Properties": {
            "hadoop.proxyuser.root.hosts": "*",
            "hadoop.proxyuser.root.groups": "*"
          }
        }
      ]
    • または、クラスターの起動後にこのパラメーターを追加することもできますが、その場合Amazonドキュメントの説明に従って再起動して変更を反映させる必要があります。
  • ポート情報:Remote Engine Gen2アプリケーションがEMRインスタンスからポート9005への接続を許可していることを確認します。

手順

  1. 次の設定ファイルを/etc/hadoop/confからRemote Engine Gen2クライアントインスタンスの/opt/talend/data/etc/hadoopフォルダーにコピーします:
    • hdfs-site.xml
    • mapred-site.xml
    • yarn-site.xml
    • core-site.xml
  2. Remote Engine Gen2側で、以下のファイルを次のように編集してTalend Pipeline Designerの要件に合わせます:
    • core-site.xml

      io.compression.codecsプロパティの値を編集します
      org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec
    • hdfs-site.xml

      dfs.client.use.datanode.hostnameプロパティをtrueの値で追加します。

    • yarn-site.xml

      プロパティyarn.timeline-service.enabledの値をfalseに編集します。

  3. EMRクラスター側でHDFSに/user/talendフォルダーを作成します:
    hadoop fs -mkdir -p /user/talend
    hadoop fs -chown -R talend:talend /user/talend
    注: これらのコマンドを実行する権限を持つHadoopユーザーを使用して、SSHでマスターノードに接続する必要があります。
  4. EMRクラスター側で、任意の場所に2つのフォルダーを作成し、root:rootの所有権を付与します。

    例え

    hadoop fs -mkdir -p /talend/deps/pdesigner
    hadoop fs -mkdir -p /talend/deps/runtime
    hadoop fs -chown -R root:root /talend/deps
    注: emr-init.shスクリプトでライブラリーをアップロードできるよう、これらのフォルダーでルートユーザー権限を付与する必要があります。
  5. Remote Engine Gen2側に戻り、次の環境変数をエクスポートします:
    • HDFS_DSS_DEPENDENCIES_PATH/talend/deps/pdesignerに設定
    • HDFS_RUNTIME_DEPENDENCIES_PATH/talend/deps/runtimeに設定
  6. /opt/talend/emrにあるスクリプトemr-init.shを実行します。
  7. このコマンドを実行してLivyを再起動します:
    cd /opt/talend && docker-compose restart livy

次のタスク

  • Talend Cloud Management Consoleに接続し、[Engines] (エンジン)ページに移動して、ビッグデータ実行プロファイルを作成します。
  • 実行プロファイルで以下の必須プロパティを定義します(値は設定に応じて異なります):
    spark.yarn.archive=hdfs:///talend/deps/runtime/spark-runtime.zip
    spark.dss.dependencies.path=hdfs:///talend/deps/pdesigner
  • 実行プロファイルを以前に設定したRemote Engine Gen2にリンクします。