すべてのプロダクト
Search
ドキュメントセンター

DataWorks:EMR Sparkノードの作成

最終更新日:Jul 10, 2025

Sparkは汎用ビッグデータ分析エンジンです。 Sparkは、高性能、使いやすさ、そして幅広い用途という特徴があります。 Sparkを使用して複雑なメモリ分析を実行し、大規模で低レイテンシのデータ分析アプリケーションを構築できます。 DataWorksは、DataWorksでSparkタスクを開発し、定期的にスケジュールするために使用できるE-MapReduce (EMR) Sparkノードを提供します。 このトピックでは、EMR Sparkノードの作成方法について説明し、EMR Sparkノードの機能がどのように動作するかの例を示します。

前提条件

  • ノードの開発を開始する前に、必要に応じてコンポーネント環境をカスタマイズできます。 そのためには、公式イメージ dataworks_emr_base_task_pod に基づいてカスタムイメージを作成し、DataStudioで使用できます。

    たとえば、カスタムイメージを作成するときに、Spark JARパッケージを置き換えたり、特定の ライブラリファイル、または JARパッケージを含めたりできます。

  • EMRクラスタがDataWorksに登録されています。 詳細については、「DataStudio (旧バージョン): EMR計算リソースの関連付け」をご参照ください。

  • (RAMユーザーを使用してタスクを開発する場合に必要) RAMユーザーは、メンバーとしてDataWorksワークスペースに追加され、[開発] ロールまたは [ワークスペースマネージャー] ロールが割り当てられます。 ワークスペースマネージャーロールには、必要以上の権限があります。 ワークスペースマネージャーロールを割り当てる際には注意してください。 メンバーの追加方法の詳細については、「ワークスペースメンバーを追加し、ロールを割り当てる」をご参照ください。

  • リソースグループが購入され、構成されています。 構成には、ワークスペースとの関連付けとネットワーク構成が含まれます。 詳細については、「6サーバーレスリソースグループを作成して使用する」をご参照ください。

  • ワークフローが作成されます。 さまざまなタイプの計算エンジンの開発操作は、DataStudioのワークフローに基づいて実行されます。 したがって、ノードを作成する前に、ワークフローを作成する必要があります。 詳細については、「ワークフローの作成」をご参照ください。

  • 特定の開発環境を使用してタスクを開発する場合は、DataWorksコンソールでカスタムイメージを作成できます。 詳細については、「イメージの管理」をご参照ください。

制限

  • このタイプのノードは、スケジューリング用に サーバーレスリソースグループ または専用リソースグループでのみ実行できます。 サーバーレスリソースグループを使用することをお勧めします。

  • DataWorksでDataLakeまたはカスタムクラスタのメタデータを管理する場合は、最初にクラスタでEMR-HOOKを構成する必要があります。 クラスタでEMR-HOOKを構成しないと、メタデータがリアルタイムで表示されず、監査ログが生成されず、データ系列がDataWorksに表示されません。 また、関連するEMRガバナンスタスクを実行できません。 EMR-HOOKの構成方法の詳細については、「Spark SQL拡張機能を使用してデータ系列と履歴アクセス情報を記録する」をご参照ください。

  • EMR on ACKページで作成されたSparkクラスタのデータ系列を表示することはできません。 EMR Serverless Sparkクラスタのデータ系列を表示できます。

  • EMR on ACKページで作成されたSparkクラスタとEMR Serverless Sparkクラスタの場合、Object Storage Service (OSS) REFメソッドのみを使用してOSSリソースを参照し、リソースをOSSにアップロードできます。 Hadoop Distributed File System (HDFS) にリソースをアップロードすることはできません。

  • DataLakeおよびカスタムクラスタの場合、OSS REFメソッドを使用してOSSリソースを参照し、リソースをOSSまたはHDFSにアップロードできます。

注意事項

ワークスペースに関連付けられているEMRクラスタのSparkコンポーネントに対してRanger権限制御を有効にしている場合は、次の点に注意してください。

  • デフォルトイメージを使用してSparkタスクを実行する場合、Ranger権限制御はデフォルトで有効になります。

  • カスタムイメージを使用してSparkタスクを実行する場合は、[チケットを送信]してテクニカルサポートに連絡し、イメージをアップグレードする必要があります。 これにより、Sparkタスクを実行するときにRanger権限制御を有効にすることができます。

準備: Sparkタスクコードを準備し、JARパッケージを取得する

DataWorksを使用してEMR Sparkタスクをスケジュールする前に、EMRでSparkタスクコードを準備し、タスクコードをコンパイルしてJARパッケージを生成する必要があります。 Sparkタスクコードの準備の詳細については、「概要」をご参照ください。

説明

取得したJARパッケージをDataWorksコンソールにアップロードする必要があります。 これにより、DataWorksはEMR Sparkタスクを定期的にスケジュールできます。

ステップ 1: EMR Sparkノードを作成する

  1. DataStudioページに移動します。

    DataWorksコンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、[データ開発とO&M] > [データ開発] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。

  2. EMR Sparkノードを作成します。

    1. 目的のワークフローを見つけ、ワークフロー名を右クリックし、[ノードの作成] > [EMR] > [EMR Spark] を選択します。

      説明

      または、ポインタを [作成] アイコンの上に移動し、[ノードの作成] > [EMR] > [EMR Spark] を選択することもできます。

    2. [ノードの作成] ダイアログボックスで、[名前][エンジンインスタンス][ノードタイプ][パス] パラメータを構成します。 [確認] をクリックします。 EMR Sparkノードの構成タブが表示されます。

      説明

      ノード名には、文字、数字、アンダースコア(_) 、ピリオド(.)を含めることができます。

ステップ 2: Sparkタスクを開発する

ビジネス要件に基づいて、次のいずれかの方法を使用して、EMR Sparkノードの構成タブでSparkタスクを開発できます。

方法 1: EMR JARリソースをアップロードして参照する

DataWorksでは、リソースを参照する前に、オンプレミス マシンからDataStudioにリソースをアップロードできます。 SparkタスクのコードがEMRでコンパイルされた後に生成されるJARパッケージを取得して保存する必要があります。 JARパッケージの保存方法は、JARパッケージのサイズによって異なります。

JARパッケージをEMR JARリソースとしてDataWorksコンソールにアップロードし、リソースをコミットできます。 また、JARパッケージをEMRのHDFSに保存することもできます。 EMR on ACKページで作成されたSparkクラスタまたはEMR Serverless Sparkクラスタの場合、HDFSにリソースをアップロードすることはできません。

JARパッケージのサイズが 200 MB未満の場合

  1. EMR JARリソースを作成します。

    JARパッケージをオンプレミス マシンからDataWorksコンソールにEMR JARリソースとしてアップロードできます。 これにより、DataWorksコンソールでJARパッケージを視覚的に管理できます。 EMR JARリソースを作成したら、リソースをコミットする必要があります。 詳細については、「EMRリソースを作成して使用する」をご参照ください。

    image.png

    説明

    EMR JARリソースを初めて作成するときに、JARパッケージのアップロード後にJARパッケージをOSSに保存する場合は、最初に表示されるプロンプトに従って承認を実行する必要があります。

  2. EMR JARリソースを参照します。

    1. 作成した [EMR Spark] ノードの名前をダブルクリックして、ノードの構成タブに移動します。

    2. [EMR] フォルダの [リソース] にある目的のEMR JARリソースを見つけ、リソース名を右クリックし、[リソースパスの挿入] を選択します。

    3. リソース参照コードがEMR Sparkノードの構成タブに自動的に追加されます。 サンプルコード:

      ##@resource_reference{"spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar"}
      spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar

      上記のコードの自動追加が成功した場合、リソースが参照されます。 spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar は、アップロードしたJARパッケージの名前です。

    4. EMR Sparkノードのコードを書き直し、spark-submitコマンドを追加します。 次のサンプルコードは参照用です。

      説明

      EMR Sparkノードのコードを記述するときにコメントを追加することはできません。 コメントを追加すると、EMR Sparkノードを実行するときにエラーが報告されます。 次のサンプルコードを参照して、EMR Sparkノードのコードを書き直すことができます。

      ##@resource_reference{"spark-examples_2.11-2.4.0.jar"}
      spark-submit --class org.apache.spark.examples.SparkPi --master yarn  spark-examples_2.11-2.4.0.jar 100

      コンポーネント:

      • org.apache.spark.examples.SparkPi: コンパイル済みJARパッケージ内のタスクのメインクラス。

      • spark-examples_2.11-2.4.0.jar: アップロードしたJARパッケージの名前。

      • 他のパラメータの設定は変更せずにそのまま使用できます。 また、次のコマンドを実行して、spark-submit コマンドの使用に関するヘルプドキュメントを表示し、ビジネス要件に基づいて spark-submit コマンドを変更することもできます。

        説明
        • spark-submit コマンドを実行することで簡略化されたパラメータ (例: --executor-memory 2G) をEMR Sparkノードで使用する場合、そのパラメータをEMR Sparkノードのコードに追加する必要があります。

        • YARN上のSparkノードを使用してジョブを送信できるのは、ノードがクラスタモードの場合のみです。

        • spark-submit を使用してノードをコミットする場合は、deploy-modeをclientではなくclusterに設定することをお勧めします。

        spark-submit --help

        image.png

JARパッケージのサイズが 200 MB以上の場合

  1. JARパッケージをEMRのHDFSに保存します。

    JARパッケージをオンプレミス マシンからDataWorksコンソールにDataWorksリソースとしてアップロードすることはできません。 JARパッケージをEMRのHDFSに保存し、JARパッケージの保存パスを記録することをお勧めします。 これにより、DataWorksを使用してSparkタスクをスケジュールするときに、このパスでJARパッケージを参照できます。

  2. JARパッケージを参照します。

    EMR SparkノードのコードでJARパッケージの保存パスを指定することで、JARパッケージを参照できます。

    1. 作成した [EMR Spark] ノードの名前をダブルクリックして、ノードの構成タブに移動します。

    2. spark-submitコマンドを記述します。 例:

      spark-submit --master yarn
      --deploy-mode cluster
      --name SparkPi
      --driver-memory 4G
      --driver-cores 1
      --num-executors 5
      --executor-memory 4G
      --executor-cores 1
      --class org.apache.spark.examples.JavaSparkPi
      hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100

      パラメータの説明:

      • hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar: HDFSにおけるJARパッケージの保存パス。

      • org.apache.spark.examples.JavaSparkPi: コンパイル済みJARパッケージ内のタスクのメインクラス。

      • その他のパラメータは、使用されるEMRクラスタで構成されます。 ビジネス要件に基づいてパラメータを変更できます。 また、次のコマンドを実行して、spark-submitコマンドの使用に関するヘルプドキュメントを表示し、ビジネス要件に基づいてspark-submitコマンドを変更することもできます。

        重要
        • spark-submitコマンドを実行することで簡略化されたパラメータ (例: --executor-memory 2G) をEMR Sparkノードで使用する場合、そのパラメータをEMR Sparkノードのコードに追加する必要があります。

        • YARN上のSparkノードを使用してジョブを送信できるのは、ノードがクラスタモードの場合のみです。

        • spark-submitを使用してノードをコミットする場合は、deploy-modeをclientではなくclusterに設定することをお勧めします。

        spark-submit --help

        image.png

方法 2: OSSリソースを参照する

現在のノードは、OSS REF メソッドを使用してOSSリソースを参照できます。 ノードでタスクを実行すると、DataWorksはノードコードで指定されたOSSリソースを自動的にロードします。 このメソッドは、EMRタスクでJARの依存関係が必要なシナリオ、またはEMRタスクがスクリプトに依存する必要があるシナリオでよく使用されます。

  1. JARパッケージを開発します。

    1. コードの依存関係を準備します。

      EMRクラスタにアクセスし、マスターノードの /usr/lib/emr/spark-current/jars/ パスで必要なコードの依存関係を表示できます。 以下の情報は、Spark 3.4.2を例として使用しています。 既存のIntelliJ IDEAプロジェクトを開き、Project Object Model (POM) 依存関係を追加し、プラグインを参照する必要があります。

      POM依存関係を追加する

      <dependencies>
              <dependency>
                  <groupId>org.apache.spark</groupId>
                  <artifactId>spark-core_2.12</artifactId>
                  <version>3.4.2</version>
              </dependency>
              <!-- Apache Spark SQL -->
              <dependency>
                  <groupId>org.apache.spark</groupId>
                  <artifactId>spark-sql_2.12</artifactId>
                  <version>3.4.2</version>
              </dependency>
      </dependencies>

      プラグインを参照する

      <build>
              <sourceDirectory>src/main/scala</sourceDirectory>
              <testSourceDirectory>src/test/scala</testSourceDirectory>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.7.0</version>
                      <configuration>
                          <source>1.8</source>
                          <target>1.8</target>
                      </configuration>
                  </plugin>
                  <plugin>
                      <artifactId>maven-assembly-plugin</artifactId>
                      <configuration>
                          <descriptorRefs>
                              <descriptorRef>jar-with-dependencies</descriptorRef>
                          </descriptorRefs>
                      </configuration>
                      <executions>
                          <execution>
                              <id>make-assembly</id>
                              <phase>package</phase>
                              <goals>
                                  <goal>single</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>net.alchim31.maven</groupId>
                      <artifactId>scala-maven-plugin</artifactId>
                      <version>3.2.2</version>
                      <configuration>
                          <recompileMode>incremental</recompileMode>
                      </configuration>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>compile</goal>
                                  <goal>testCompile</goal>
                              </goals>
                              <configuration>
                                  <args>
                                      <arg>-dependencyfile</arg>
                                      <arg>${project.build.directory}/.scala_dependencies</arg>
                                  </args>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
    2. コードを記述します。 サンプルコード:

      package com.aliyun.emr.example.spark
      
      import org.apache.spark.sql.SparkSession
      
      object SparkMaxComputeDemo {
        def main(args: Array[String]): Unit = {
          // Sparkセッションを作成します。
          val spark = SparkSession.builder()
            .appName("HelloDataWorks")
            .getOrCreate()
      
          // Sparkバージョンを表示します。
          println(s"Spark version: ${spark.version}")
        }
      }
    3. コードをJARファイルにパッケージ化します。

      上記のコードを記述して保存したら、コードをJARファイルにパッケージ化します。 この例では、SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar という名前のファイルが生成されます。

  2. JARファイルをアップロードします。

    1. OSSコンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 次に、左側のナビゲーションウィンドウで、[バケット] をクリックします。

    2. [バケット] ページで、目的のバケットを見つけ、バケット名をクリックして [オブジェクト] ページに移動します。

      この例では、onaliyun-bucket-2 バケットが使用されます。

    3. [オブジェクト] ページで、[ディレクトリの作成] をクリックして、JARファイルを保存するために使用されるディレクトリを作成します。

      [ディレクトリの作成] パネルで、[ディレクトリ名]emr/jars に設定し、[OK] をクリックします。

    4. JARファイルを、作成したディレクトリにアップロードします。

      作成したディレクトリに移動します。 [オブジェクトのアップロード] をクリックします。 [アップロードするファイル] セクションで、[ファイルの選択] をクリックし、SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar ファイルを追加します。 次に、[オブジェクトのアップロード] をクリックします。

  3. JARファイルを参照します。

    1. JARファイルを参照するために使用されるコードを記述します。

      EMR Sparkノードの構成タブで、JARファイルを参照するために使用されるコードを記述します。

      spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo --master yarn ossref://onaliyun-bucket-2/emr/jars/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar

      パラメータの説明:

      パラメータ

      説明

      class

      実行されるメインクラスの完全名。

      master

      Sparkアプリケーションの実行モード。

      ossref ファイルパス

      形式: ossref://{endpoint}/{bucket}/{object}

      • endpoint: OSSのエンドポイント。 endpointパラメータを空のままにすると、現在のEMRクラスタと同じリージョンにあるOSSバケット内のリソースのみを参照できます。

      • bucket: OSSでオブジェクトを保存するために使用されるコンテナ。 各 bucket には一意の名前があります。 OSSコンソールにログインして、現在のログインアカウント内のすべての Bucket を表示できます。

      • object: bucket に保存されているファイル名またはパス。

    2. EMR Sparkノードでタスクを実行します。

      コードを記述したら、image アイコンをクリックし、作成済みのサーバーレスリソースグループを選択して、EMR Sparkノードでタスクを実行します。 タスクの実行が完了したら、コンソールに表示される アプリケーション ID (例: application_1730367929285_xxxx) を記録します。

    3. 結果を表示します。

      EMR Shellノードを作成し、EMR Shellノードで yarn logs -applicationId application_1730367929285_xxxx コマンドを実行して、実行結果を表示します。

      image

(オプション) 詳細パラメータを構成する

現在のノードの構成タブの [詳細設定] タブで、Spark固有のパラメータを構成できます。 パラメータの構成方法の詳細については、「Spark Configuration」を参照してください。 次の表に、さまざまなタイプのEMRクラスタに構成できる詳細パラメータを示します。

DataLakeクラスタまたはカスタムクラスタ: EMR on ECSページで作成

詳細パラメータ

説明

queue

ジョブがコミットされるスケジューリングキュー。 デフォルト値: default。

EMRクラスタをDataWorksワークスペースに登録するときに、ワークスペースレベルの [YARNキュー] を構成した場合、次の構成が適用されます。

  • [グローバル設定タスク優先度][はい] を選択した場合、EMRクラスタの登録時に構成されたYARNキューがSparkタスクの実行に使用されます。

  • [グローバル設定タスク優先度] で [はい] を選択しなかった場合、EMR Sparkノードに構成されたYARNキューがSparkタスクの実行に使用されます。

EMR YARNの詳細については、「YARNスケジューラ」を参照してください。 EMRクラスタを登録するときのキュー構成の詳細については、「グローバルYARNキューを構成する」を参照してください。

priority

優先度。 デフォルト値: 1。

FLOW_SKIP_SQL_ANALYZE

SQL文の実行方法。 有効値:

  • true: 複数のSQL文が同時に実行されます。

  • false (デフォルト): 一度に1つのSQL文のみが実行されます。

説明

このパラメータは、DataWorksワークスペースの開発環境でのテストにのみ使用できます。

その他

  • [詳細設定] タブで EMR Spark ノードに カスタム Spark パラメーター (たとえば spark.eventLog.enabled : false ) を追加することもできます。 EMR Spark ノードのコードをコミットすると、DataWorks はカスタムパラメーターを --conf key=value フォーマットでコードに追加します。

  • グローバルSparkパラメータを構成することもできます。 詳細については、「グローバルSparkパラメータを構成する」を参照してください。

    説明

    Ranger権限制御を有効にする場合は、グローバルSparkパラメータを構成する ときに spark.hadoop.fs.oss.authorization.method=ranger を追加して、Ranger権限制御を有効にする必要があります。

Hadoopクラスタ: EMR on ECSページで作成

詳細パラメータ

説明

queue

ジョブがコミットされるスケジューリングキュー。 デフォルト値: default。

EMRクラスタをDataWorksワークスペースに登録するときに、ワークスペースレベルの [YARNキュー] を構成した場合、次の構成が適用されます。

  • [グローバル設定タスク優先度][はい] を選択した場合、EMRクラスタの登録時に構成されたYARNキューがSparkタスクの実行に使用されます。

  • [グローバル設定タスク優先度] で [はい] を選択しなかった場合、EMR Sparkノードに構成されたYARNキューがSparkタスクの実行に使用されます。

EMR YARNの詳細については、「YARNスケジューラ」を参照してください。 EMRクラスタを登録するときのキュー構成の詳細については、「グローバルYARNキューを構成する」を参照してください。

priority

優先度。 デフォルト値: 1。

FLOW_SKIP_SQL_ANALYZE

SQL文の実行方法。 有効値:

  • true: 複数のSQL文が同時に実行されます。

  • false: 一度に1つのSQL文のみが実行されます。

説明

このパラメータは、DataWorksワークスペースの開発環境でのテストにのみ使用できます。

USE_GATEWAY

現在のノードでジョブをコミットするためにゲートウェイクラスタを使用するかどうかを指定します。 有効値:

  • true: ゲートウェイクラスタを使用してジョブをコミットします。

  • false: ゲートウェイクラスタを使用せずにジョブをコミットします。 ジョブはマスターノードに自動的にコミットされます。

説明

ノードが属するEMRクラスタがゲートウェイクラスタに関連付けられていないが、USE_GATEWAYパラメータが true に設定されている場合、ジョブのコミットに失敗する可能性があります。

その他

  • また、詳細設定タブで EMR Spark ノードに、 spark.eventLog.enabled : false のようなカスタム Spark パラメーターを追加することもできます。 EMR Spark ノードのコードをコミットすると、DataWorks はカスタムパラメーターを--conf key=valueフォーマットでコードに追加します。

  • グローバルSparkパラメータを構成することもできます。 詳細については、「グローバルSparkパラメータを構成する」を参照してください。

    説明

    Ranger権限制御を有効にする場合は、グローバルSparkパラメータを構成する ときに spark.hadoop.fs.oss.authorization.method=ranger を追加して、Ranger権限制御を有効にする必要があります。

Sparkクラスタ: EMR on ACKページで作成

詳細パラメータ

説明

queue

このパラメータはサポートされていません。

priority

このパラメータはサポートされていません。

FLOW_SKIP_SQL_ANALYZE

SQL文の実行方法。 有効値:

  • true: 複数のSQL文が同時に実行されます。

  • false: 一度に1つのSQL文のみが実行されます。

説明

このパラメータは、DataWorksワークスペースの開発環境でのテストにのみ使用できます。

その他

  • 詳細設定タブで、EMR Spark ノードに カスタム Spark パラメーター (たとえば spark.eventLog.enabled : false ) を追加することもできます。EMR Spark ノードのコードをコミットすると、DataWorks はカスタムパラメーターを --conf key=value フォーマットでコードに追加します。

  • グローバルSparkパラメータを構成することもできます。 詳細については、「グローバルSparkパラメータを構成する」を参照してください。

EMR Serverless Sparkクラスタ

パラメータ設定の詳細については、「spark-submit CLIを使用してSparkジョブを送信する」トピックの「ステップ 3: Sparkジョブを送信する」セクションを参照してください。

詳細パラメータ

説明

queue

ジョブがコミットされるスケジューリングキュー。 デフォルト値: dev_queue。

priority

優先度。 デフォルト値: 1。

FLOW_SKIP_SQL_ANALYZE

SQL文の実行方法。 有効値:

  • true: 複数のSQL文が同時に実行されます。

  • false: 一度に1つのSQL文のみが実行されます。

説明

このパラメータは、DataWorksワークスペースの開発環境でのテストにのみ使用できます。

SERVERLESS_RELEASE_VERSION

Sparkエンジンのバージョン。 デフォルトでは、[EMRクラスタの登録] ページの [デフォルトエンジンバージョン] パラメータで指定された値が使用されます。 [EMRクラスタの登録] ページに移動するには、次の操作を実行します。 [設定センター] ページに移動します。 左側のナビゲーションウィンドウで、[クラスタ管理] をクリックします。 [クラスタ管理] ページで、[クラスタの登録] をクリックし、[クラスタタイプの選択] ダイアログボックスで [E-MapReduce] を選択します。 このパラメータを構成して、さまざまなタイプのタスクに異なるエンジンバージョンを指定できます。

SERVERLESS_QUEUE_NAME

リソースキュー。 デフォルトでは、[EMRクラスタの登録] ページの [デフォルトリソースキュー] パラメータで指定された値が使用されます。 リソースの隔離と管理の要件を満たすために、キューを追加できます。 詳細については、「リソースキューの管理」を参照してください。

その他

  • また、[詳細設定] タブで EMR Spark ノードにカスタム Spark パラメーター (例: spark.eventLog.enabled : false ) を追加することもできます。 EMR Spark ノードのコードをコミットすると、DataWorks は、--conf key=value フォーマットでカスタムパラメーターをコードに追加します。

  • グローバルSparkパラメータを構成することもできます。 詳細については、「グローバルSparkパラメータを構成する」を参照してください。

SQL文を実行する

  1. 上部ツールバーの 高级运行 アイコンをクリックします。 [パラメータ] ダイアログボックスで、スケジューリング用に作成されたリソースグループを選択し、[実行] をクリックします。

    説明
    • インターネットまたは virtual private cloud (VPC) 経由で計算ソースにアクセスする場合は、計算ソースに接続されているスケジューリング用リソースグループを使用します。 詳細については、「ネットワーク接続ソリューション」を参照してください。

    • 後続の操作でリソースグループを変更する場合は、高级运行 [(パラメータ付きで実行)] アイコンをクリックして、[パラメータ] ダイアログボックスでリソースグループを変更できます。

    • EMR Sparkノードを使用してデータのクエリを実行する場合、最大 10,000 件のデータレコードを返すことができ、返されるデータレコードの合計サイズは 10 MBを超えることはできません。

  2. 上部ツールバーの 保存 アイコンをクリックして、SQL文を保存します。

  3. オプション。 スモークテストを実行します。

    ノードをコミットするとき、またはノードをコミットした後に、開発環境でノードのスモークテストを実行できます。 詳細については、「スモークテストを実行する」を参照してください。

ステップ 3: スケジューリングプロパティを構成する

システムにノードのタスクを定期的に実行させる場合は、ノードの構成タブの右側のナビゲーションウィンドウで [プロパティ] をクリックして、ビジネス要件に基づいてタスクスケジューリングプロパティを構成できます。 詳細については、「概要」を参照してください。

説明
  • タスクをコミットする前に、[プロパティ] タブで [再実行] パラメータと [親ノード] パラメータを構成する必要があります。

  • コンポーネント環境をカスタマイズする必要がある場合は、公式イメージ dataworks_emr_base_task_pod に基づいてカスタムイメージを作成し、DataStudioで使用できます。

    たとえば、カスタムイメージを作成するときに、Spark JARパッケージを置き換えたり、特定の ライブラリファイル、または JARパッケージを含めたりできます。

ステップ 4: タスクをデプロイする

ノードのタスクが構成されたら、タスクをコミットしてデプロイする必要があります。 タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてタスクを定期的に実行します。

  1. 上部ツールバーの 保存 アイコンをクリックして、タスクを保存します。

  2. 上部ツールバーの 提交 アイコンをクリックして、タスクをコミットします。

    [送信] ダイアログボックスで、[変更の説明] パラメータを構成します。 次に、タスクのコミット後にタスクコードを確認するかどうかを、ビジネス要件に基づいて決定します。

    説明
    • タスクをコミットする前に、[プロパティ] タブで [再実行] パラメータと [親ノード] パラメータを構成する必要があります。

    • コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって発生するタスク実行エラーを防ぐことができます。 コードレビュー機能を有効にすると、コミットされたタスクコードは、コードレビューに合格した後にのみデプロイできます。 詳細については、「コードレビュー」を参照してください。

標準モードのワークスペースを使用する場合は、タスクをコミットした後に本番環境にデプロイする必要があります。 ノードにタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。 詳細については、「ノードのデプロイ」を参照してください。

次のステップ

タスクをコミットしてデプロイすると、タスクはスケジューリング構成に基づいて定期的に実行されます。 対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。 詳細については、「自動トリガーされたタスクの表示と管理」を参照してください。

FAQ

EMRクラスタでKerberos認証が有効になっている場合に、EMR SparkノードでYARNクラスタモードでspark-submitを実行すると、「DlfMetaStoreClientFactoryが見つかりません」というエラーメッセージが表示される場合はどうすればよいですか?

参考資料