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

AnalyticDB:Azkaban を使用して Spark ジョブをスケジュールする

最終更新日:Apr 25, 2025

Azkaban は、複雑な依存関係を持つワークフローの作成、実行、および管理に使用できるバッチワークフロージョブスケジューラです。 Azkaban Web インターフェイスで AnalyticDB for MySQL Spark ジョブをスケジュールできます。

前提条件

Spark SQL ジョブのスケジュール

AnalyticDB for MySQL では、バッチモードまたは対話型モードで Spark SQL を実行できます。スケジュール手順は、実行モードによって異なります。

バッチモード

  1. spark-submit コマンドラインツールをインストールし、関連パラメータを指定します。

    説明

    指定が必要なパラメータは、keyIdsecretIdregionIdclusterIdrgName のみです。

  2. ワークフローファイルを作成し、ワークフローフォルダを ZIP 形式で圧縮します。

    nodes:
      - name: SparkPi
        type: command
        config:
          command: /<your path>/adb-spark-toolkit-submit/bin/spark-submit 
                    --class com.aliyun.adb.spark.sql.OfflineSqlTemplate 
                    local:///opt/spark/jars/offline-sql.jar 
                    "show databases" 
                    "select 100"
        dependsOn:
          - jobA
          - jobB
    
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    
      - name: jobB
        type: command
        config:
          command: pwd
    重要
    • <your path> パラメータを spark-submit ツールの実際のインストールパスに置き換えます。

    • コマンドにはバックスラッシュ(\)を使用しないでください。

  3. プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。

    1. Azkaban Web インターフェイスにアクセスします。 上部のナビゲーションバーで、[プロジェクト] をクリックします。

    2. ページの右上隅にある [プロジェクトの作成] をクリックします。

    3. [プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。

    4. ページの右上隅にある [アップロード] をクリックします。

    5. [プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。

  4. ワークフローを実行します。

    1. [プロジェクト] ページで、[フロー] タブをクリックします。

    2. [フローの実行] をクリックします。

    3. [実行] をクリックします。

    4. [フローが送信されました] メッセージで、[続行] をクリックします。

  5. ワークフローの詳細を表示します。

    1. 上部のナビゲーションバーで、[実行中] をクリックします。

    2. [最近完了] タブをクリックします。

    3. ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。

    4. [ログ] をクリックして、ジョブログを表示します。

対話型モード

  1. Spark 対話型リソースグループの接続アドレスを取得します。

    1. AnalyticDB for MySQL コンソール にログオンします。コンソールの左上隅で、リージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Enterprise Edition、Basic Edition、または Data Lakehouse Edition タブで、管理するクラスタを見つけ、クラスタ ID をクリックします。

    2. 左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 をクリックし、リソースグループ管理 タブをクリックします。

    3. クリック 操作 列の対応するリソースグループをクリックし、詳細 をクリックして内部エンドポイントと パブリックエンドポイントを表示します。括弧内の [ポート番号] image ボタンをクリックすると、接続アドレスをコピーできます。

      次の 2 つのケースでは、[パブリックアドレス] をクリックし、次に [ネットワークの申請] をクリックして、パブリックエンドポイントを手動で申請する必要があります。

      • 詳細については、「クイックスタート: PHPを使用してBLOBをアップロード、ダウンロード、一覧表示する」をご参照ください。

      • Spark SQL ジョブを送信するためのクライアントツールは ECS にデプロイされており、ECSAnalyticDB for MySQL は同じ VPC に属していません。

  2. ワークフローファイルを作成し、ワークフローフォルダを ZIP 形式で圧縮します。

    nodes:
      - name: jobB
        type: command
        config:
          command: <path> -u "jdbc:hive2://amv-t4n83e67n7b****sparkwho.ads.aliyuncs.com:10000/adb_demo" -n spark_interactive_prod/spark_user -p "spark_password" -e "show databases;show tables;"
    
        dependsOn:
          - jobA
    
      - name: jobA
        type: command
        config:
          command: <path> -u "jdbc:hive2://amv-t4n83e67n7b****sparkwho.ads.aliyuncs.com:10000/adb_demo" -n spark_interactive_prod/spark_user -p "spark_password" -e "show tables;"

    次の表にパラメータを示します。

    パラメータ

    説明

    path

    Beeline クライアントのパス。例:/path/to/spark/bin/beeline

    -u

    手順 1 で取得したエンドポイント。エンドポイント内の default を実際のデータベース名に置き換え、エンドポイントから resource_group=<resource group name> サフィックスを削除します。

    例: jdbc:hive2://amv-t4naxpqk****sparkwho.ads.aliyuncs.com:10000/adb_demo です。

    -n

    AnalyticDB for MySQL クラスタ内のデータベースアカウントとリソースグループの名前。形式:resource_group_name/database_account_name。 例:。

    例: spark_interactive_prod/spark_user

    -p

    AnalyticDB for MySQL クラスタのデータベースアカウントのパスワード。

    -e

    SQL 文。複数の SQL 文はセミコロン(;)で区切ります。

  3. プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。

    1. Azkaban Web インターフェイスにアクセスします。上部のナビゲーションバーで、[プロジェクト] をクリックします。

    2. ページの右上隅にある [プロジェクトの作成] をクリックします。

    3. [プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。

    4. ページの右上隅にある [アップロード] をクリックします。

    5. [プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。

  4. ワークフローを実行します。

    1. [プロジェクト] ページで、[フロー] タブをクリックします。

    2. [フローの実行] をクリックします。

    3. [実行] をクリックします。

    4. [フローが送信されました] メッセージで、[続行] をクリックします。

  5. ワークフローの詳細を表示します。

    1. 上部のナビゲーションバーで、[実行中] をクリックします。

    2. [最近完了] タブをクリックします。

    3. ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。

    4. [ログ] をクリックして、ジョブログを表示します。

Spark JAR ジョブのスケジュール

  1. spark-submit コマンドラインツールをインストールし、関連パラメータを指定します。

    説明

    指定が必要なパラメータは、keyIdsecretIdregionIdclusterIdrgName のみです。 Spark JAR パッケージがオンプレミスデバイスに保存されている場合は、ossUploadPath などの Object Storage Service (OSS) パラメータを指定する必要があります。

  2. ワークフローファイルを作成し、ワークフローフォルダを ZIP 形式で圧縮します。

    nodes:
      - name: SparkPi
        type: command
        config:
          command: /<your path>/adb-spark-toolkit-submit/bin/spark-submit 
                    --class org.apache.spark.examples.SparkPi 
                    --name SparkPi 
                    --conf spark.driver.resourceSpec=medium 
                    --conf spark.executor.instances=2 
                    --conf spark.executor.resourceSpec=medium 
                    local:///tmp/spark-examples.jar 1000
        dependsOn:
          - jobA
          - jobB
    
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    
      - name: jobB
        type: command
        config:
          command: pwd
    重要
    • <your path> パラメータを spark-submit ツールの実際のインストールパスに置き換えます。

    • コマンドにはバックスラッシュ(\)を使用しないでください。

  3. プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。

    1. Azkaban Web インターフェイスにアクセスします。上部のナビゲーションバーで、[プロジェクト] をクリックします。

    2. ページの右上隅にある [プロジェクトの作成] をクリックします。

    3. [プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。

    4. ページの右上隅にある [アップロード] をクリックします。

    5. [プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。

  4. ワークフローを実行します。

    1. [プロジェクト] ページで、[フロー] タブをクリックします。

    2. [フローの実行] をクリックします。

    3. [実行] をクリックします。

    4. [フローが送信されました] メッセージで、[続行] をクリックします。

  5. ワークフローの詳細を表示します。

    1. 上部のナビゲーションバーで、[実行中] をクリックします。

    2. [最近完了] タブをクリックします。

    3. ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。

    4. [ログ] をクリックして、ジョブログを表示します。