DolphinScheduler は、強力な Directed Acyclic Graph(DAG)ビジュアルインターフェイスを備えた、分散型の拡張可能なオープンソースワークフローオーケストレーションプラットフォームです。 DolphinScheduler は、大量のデータのワークフローを効率的に実行および管理するのに役立ちます。 このトピックでは、DolphinScheduler の Web UI で Spark ジョブを簡単に作成、編集、およびスケジュールする方法について説明します。
背景情報
DolphinScheduler AliyunServerlessSpark Task Plugin のコードは、Apache DolphinScheduler のメインブランチに正常にマージされ、後続の公式バージョンでリリースされる予定です。 新しいバージョンがリリースされる前に、AliyunServerlessSpark Task Plugin のメインブランチコードをコンパイルするか、cherry-pick コマンドの関連するプルリクエスト(PR)を使用して AliyunServerlessSpark Task Plugin をプロジェクトに統合できます。
前提条件
Java 開発キット(JDK)1.8 以降がインストールされている。
AliyunServerlessSpark Task Plugin が、次のいずれかの方法でインストールされている。
方法 1:AliyunServerlessSpark Task Plugin のメインブランチコードをコンパイルする。 詳細については、「dolphinscheduler」をご参照ください。
方法 2:cherry-pick コマンドの関連する PR を使用して、AliyunServerlessSpark Task Plugin をプロジェクトに統合する。 詳細については、「[Feature-16127] Support emr serverless spark #16126」をご参照ください。
手順
ステップ 1:データソースを作成する
DolphinScheduler の Web UI にアクセスします。 上部のナビゲーションバーで、[データソース] をクリックします。
[データソースの作成] をクリックします。「データソースの種類の選択」ダイアログボックスで、[ALIYUN_SERVERLESS_SPARK] を選択します。
[データソースの作成] ダイアログボックスで、パラメーターを構成します。 次の表にパラメーターを示します。
パラメーター
説明
データソース名
データソースの名前。
アクセスキー ID
Alibaba Cloud アカウントのアクセスキー ID。
アクセスキーシークレット
Alibaba Cloud アカウントのアクセスキーシークレット。
リージョン ID
E-MapReduce(EMR)Serverless Spark ワークスペースが存在するリージョンの ID。 例:cn-beijing。
サポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。
[接続テスト] をクリックします。 データソースが接続テストに合格したら、[確認] をクリックします。
ステップ 2:プロジェクトを作成する
上部のナビゲーションバーで、[プロジェクト] をクリックします。
[プロジェクトの作成] をクリックします。
[プロジェクトの作成] ダイアログボックスで、[プロジェクト名] や [ユーザー] などのパラメーターを構成します。 詳細については、「Project」をご参照ください。
ステップ 3:ワークフローを作成する
作成したプロジェクトの名前をクリックします。 左側のナビゲーションウィンドウで、[ワークフロー] > [ワークフロー定義] を選択して、[ワークフロー定義] ページに移動します。
[ワークフローの作成] をクリックします。 [ワークフロー DAG 編集] ページが表示されます。
左側のナビゲーションウィンドウで、[ALIYUN_SERVERLESS_SPARK] を選択し、右側のキャンバスにドラッグします。
[現在のノード設定] ダイアログボックスで、パラメーターを構成し、[確認] をクリックします。
パラメーター構成は、送信するジョブの種類によって異なります。
Java Archive(JAR)ジョブの送信に必要なパラメーター
パラメーター
説明
データソースタイプ
[ALIYUN_SERVERLESS_SPARK] を選択します。
データソースインスタンス
作成したデータソースを選択します。
ワークスペース ID
EMR Serverless Spark ワークスペースの ID です。
リソースキュー ID
EMR Serverless Spark ワークスペース内のリソースキューの ID です。デフォルト値:
root_queue
。コードタイプ
ジョブのタイプです。パラメーターを
JAR
に設定します。ジョブ名
EMR Serverless Spark ジョブの名前です。例: ds-emr-spark-jar。
エントリポイント
ファイルパスです。例: oss://<yourBucketName>/spark-resource/examples/jars/spark-examples_2.12-3.3.1.jar。
エントリポイント引数
Spark ジョブのコードです。
番号記号
(#)をデリミタとして使用して、コード内のパラメーターを区切ることができます。Spark Submit パラメーター
Spark JAR ジョブの送信に必要なパラメーターです。例:
--class org.apache.spark.examples.SparkPi --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
本番環境かどうか
Spark ジョブが本番環境のジョブである場合は、スイッチをオンにします。
エンジンのリリースバージョン
エンジンバージョンです。デフォルト値:
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。SQL ジョブの送信に必要なパラメーター
パラメーター
説明
データソースタイプ
[ALIYUN_SERVERLESS_SPARK] を選択します。
データソースインスタンス
作成したデータソースを選択します。
ワークスペース ID
EMR Serverless Spark ワークスペースの ID です。
リソースキュー ID
EMR Serverless Spark ワークスペース内のリソースキューの ID です。デフォルト値:
root_queue
。コードタイプ
ジョブのタイプです。パラメーターを
SQL
に設定します。ジョブ名
EMR Serverless Spark ジョブの名前です。例: ds-emr-spark-sql。
エントリポイント
ファイルパスです。有効なファイルパスを入力する必要があります。
エントリポイント引数
Spark ジョブのコードです。
番号記号
(#)をデリミタとして使用して、コード内のパラメーターを区切ることができます。例:SQL スクリプトを送信します。
-e#show tables;show tables;
OSS 内の SQL スクリプトを送信します。
-f#oss://<yourBucketName>/spark-resource/examples/sql/show_db.sql
Spark Submit パラメーター
Spark SQL ジョブの送信に必要なパラメーターです。例:
--class org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
本番環境かどうか
Spark ジョブが本番環境のジョブである場合は、スイッチをオンにします。
エンジンのリリースバージョン
エンジンバージョンです。デフォルト値:
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。PySpark ジョブの送信に必要なパラメーター
パラメーター
説明
データソースタイプ
[ALIYUN_SERVERLESS_SPARK] を選択します。
データソースインスタンス
作成したデータソースを選択します。
ワークスペース ID
EMR Serverless Spark ワークスペースの ID です。
リソースキュー ID
EMR Serverless Spark ワークスペース内のリソースキューの ID です。デフォルト値:
root_queue
。コードタイプ
ジョブのタイプです。パラメーターを
PYTHON
に設定します。ジョブ名
EMR Serverless Spark ジョブの名前です。例: ds-emr-spark-jar。
エントリポイント
ファイルパスです。例:
oss://<yourBucketName>/spark-resource/examples/src/main/python/pi.py
。エントリポイント引数
Spark ジョブのコードです。
番号記号
(#)をデリミタとして使用して、コード内のパラメーターを区切ることができます。例:1
。Spark Submit パラメーター
PySpark ジョブの送信に必要なパラメーターです。例:
--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
本番環境かどうか
Spark ジョブが本番環境のジョブである場合は、スイッチをオンにします。
エンジンのリリースバージョン
エンジンバージョンです。デフォルト値:
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。
参考資料
DolphinScheduler の詳細については、「Apache DolphinScheduler」をご参照ください。