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

DataWorks:Serverless Spark バッチノード

最終更新日:Jun 22, 2026

Spark は、その高いパフォーマンス、使いやすさ、幅広い適用性で知られる汎用のビッグデータ分析エンジンです。複雑なインメモリコンピューティングをサポートしており、大規模で低レイテンシーのデータ分析アプリケーションの構築に最適です。DataWorks は、EMR Serverless Spark クラスター 上で Spark タスクを開発し、定期的にスケジュールできる Serverless Spark バッチノードを提供します。

前提条件

  • 計算リソースの制限EMR Serverless Spark リソースの関連付けのみがサポートされています。リソースグループと計算リソースがネットワーク経由で接続されていることを確認してください。

  • リソースグループの制約:このタスクは Serverless リソースグループ でのみ実行されます。

  • (オプション、RAM ユーザーに必要) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、[Developer] または [Workspace Administrator] ロールを割り当てます。Workspace Administrator ロールは広範な権限を持つため、慎重に付与してください。メンバーの追加の詳細については、「ワークスペースにメンバーを追加」をご参照ください。

    Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。

ノードの作成

手順については、「ノードの作成」をご参照ください。

ノードの開発

説明

Serverless Spark バッチタスクを開発する前に、まず E-MapReduce (EMR) で Spark タスクコードを開発し、JAR パッケージにコンパイルする必要があります。Spark 開発のガイダンスについては、「Sparkチュートリアル」をご参照ください。

ユースケースに最も適したアプローチを選択してください:

オプション 1:EMR JAR のアップロードと参照

DataWorks では、ローカルコンピューターから Data Studio にリソースをアップロードして参照できます。Serverless Spark バッチタスクをコンパイルすると、コンパイル済みの JAR パッケージを取得できます。JAR パッケージのサイズに基づいてストレージ方法を選択します。JAR パッケージが 500 MB 未満の場合は、ローカルコンピューターから DataWorks のEMR JAR リソースとしてアップロードできます。

  1. EMR JAR リソースの作成

    1. 左側メニューで、imageアイコンをクリックしてResource Management ページに移動します。

    2. Resource Management ページで、imageアイコンをクリックし、New Resource を選択し、リソースにspark-examples_2.11-2.4.0.jarという名前を付けます。

    3. Click Upload をクリックし、spark-examples_2.11-2.4.0.jarファイルをアップロードします。

    4. Storage PathData SourcesResource Group を選択します。

      重要

      データソースには、関連付けられている EMR Serverless Spark クラスターを選択する必要があります。

    5. Save をクリックします。

  2. EMR JAR リソースの参照

    1. 作成した[Serverless Spark Batch]ノードを開き、コードエディターページを表示したままにします。

    2. 左側の[リソース管理]ペインで、使用するリソースを見つけて右クリックし、Insert Resource Path を選択します。

    3. [Serverless Spark Batch]ノードのコードエディターに以下のコードが自動的に追加されると、リソースの参照は完了です:

      ##@resource_reference{"spark-examples_2.11-2.4.0.jar"}
      spark-examples_2.11-2.4.0.jar

      上記のコードで、spark-examples_2.11-2.4.0.jarはアップロードした EMR JAR リソースの名前です。

    4. spark-submit コマンドを追加して、ノードコードを修正します。次の例は、修正されたコードを示しています。

      重要
      • タスクコードは、例に示されているとおりに正確に修正してください。コメントを追加するとノードが失敗するため、追加しないでください。

      • EMR Serverless Spark の場合、spark-submit コマンドの deploy-mode パラメーターを設定する必要はありません。クラスター モードのみがサポートされています。

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

      コマンド

      説明

      class

      JAR ファイル内のアプリケーションのメインクラス。この例では、値はorg.apache.spark.examples.SparkPiです。

      説明

      パラメーターの詳細については、「spark-submitを使用したジョブの送信」をご参照ください。

オプション 2:OSS リソースの参照

Object Storage Service (OSS) に保存されているリソースを直接参照できます。ノードを実行すると、DataWorks は指定された OSS リソースを自動的にロードしてローカルで使用します。このアプローチは通常、EMR タスクが JAR 依存関係を必要とする場合や、スクリプトに依存する場合に使用します。

  1. JAR リソースの開発:このトピックでは、SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jarを例として使用します。

  2. JAR リソースのアップロード

    1. OSSコンソールにログインします。左側メニューで、[バケット] をクリックします。

    2. 対象のバケットの名前をクリックして、ファイル管理ページに移動します。

    3. Create Directory をクリックして、JAR リソースを格納するディレクトリを作成します。

    4. ディレクトリに移動し、SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jarファイルをバケットにアップロードします。

  3. JAR リソースの参照

    1. 作成した Serverless Spark バッチノードのコードエディターで、JAR リソースを参照するコードを記述します。

      重要

      次のコードでは、OSS バケット名はmybucketで、ディレクトリはemrです。これらを実際の値に置き換えてください。

      spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo oss://mybucket/emr/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar

      パラメーターの説明:

      パラメーター

      説明

      class

      実行するメインクラスの完全修飾名。

      oss ファイルパス

      形式はoss://{bucket}/{object}です。

      • bucket:OSS でオブジェクトを格納するコンテナーです。バケットには一意の名前が付けられます。 OSSコンソールにログインすると、現在のアカウント配下にあるすべてのバケットを表示できます。

      • objectバケットに格納されている特定のファイルまたはパスです。

      説明

      パラメーターの詳細については、「spark-submitを使用したジョブの送信」をご参照ください。

ノードのデバッグ

  1. Run Configuration ペインで、[計算リソース][リソースグループ] などの設定を行います。

    パラメーター

    説明

    計算リソース

    関連付けられているEMR Serverless Spark 計算リソースを選択します。利用可能な計算リソースがない場合は、ドロップダウンリストから[計算リソースの作成] を選択できます。

    リソースグループ

    ワークスペースに関連付けられているリソースグループを選択します。

    スクリプトパラメーター

    ${パラメーター名} 形式を使用して、ノードのコードで変数を定義できます。その後、Script Parameters セクションで[Parameter name]と[Parameter Value]を定義する必要があります。実行時に、DataWorks はこれらの変数を指定された値に置き換えます。詳細については、「スケジューリングパラメーター」をご参照ください。

    Serverless Spark ノードパラメーター

    Spark プログラムの実行時パラメーター。次のタイプがサポートされています:

    設定形式は次のとおりです: "spark.eventLog.enabled": false。DataWorks は、この設定を--conf key=value形式で Serverless Spark に送信するコードに自動的に追加します。

    説明

    DataWorks では、ワークスペースレベルでグローバル Spark パラメーターを設定できます。グローバル Spark パラメーターを、特定のモジュール内で設定されたパラメーターより優先するかどうかを指定できます。詳細については、「グローバルSparkパラメーターの設定」をご参照ください。

  2. ノードエディターの上部にあるツールバーで、Run をクリックします。

    重要

    公開する前に、Run Configuration の[Serverless Spark ノードパラメーター]をScheduling Settings の[Serverless Spark ノードパラメーター]に同期する必要があります。

次のステップ

  • ノードスケジューリングを設定する: ノードを定期的に実行する必要がある場合は、右側のScheduling SettingsパネルでScheduling Policyを設定します。

  • ノードの公開:タスクを本番環境で実行するには、image アイコンをクリックしてノードを公開します。ノードは、本番環境に公開された後にのみスケジュールどおりに実行されます。

  • タスクの O&M:タスクが公開された後、オペレーションセンターで定期的な実行ステータスをモニターできます。詳細については、「オペレーションセンター入門」をご参照ください。

関連ドキュメント

付録:DataWorks パラメーター

パラメーター

説明

SERVERLESS_QUEUE_NAME

タスクが送信されるリソースキューを指定します。デフォルトでは、タスクは管理センタークラスター管理 でクラスターに設定されている[デフォルトのリソースキュー]に送信されます。リソースを分離して管理する必要がある場合は、キューを追加できます。詳細については、「リソースキューの管理」をご参照ください。

設定方法:

  • ノードパラメーターを使用してジョブのリソースキューを指定します。

  • グローバル Spark パラメーターを使用して、タスクのリソースキューを指定します。