Azkaban は、複雑な依存関係を持つワークフローの作成、実行、および管理に使用できるバッチワークフロージョブスケジューラです。 Azkaban Web インターフェイスで AnalyticDB for MySQL Spark ジョブをスケジュールできます。
前提条件
AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスタが作成されている。
ジョブリソースグループまたは Spark 対話型リソースグループが作成されますAnalyticDB for MySQL クラスターに対して。
Beeline がインストールされている。
Azkaban を実行するサーバーの IP アドレスが、 IP アドレス ホワイトリストの AnalyticDB for MySQL クラスタに追加されます。
Spark SQL ジョブのスケジュール
AnalyticDB for MySQL では、バッチモードまたは対話型モードで Spark SQL を実行できます。スケジュール手順は、実行モードによって異なります。
バッチモード
spark-submit コマンドラインツールをインストールし、関連パラメータを指定します。
説明指定が必要なパラメータは、
keyId、secretId、regionId、clusterId、rgNameのみです。ワークフローファイルを作成し、ワークフローフォルダを 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 ツールの実際のインストールパスに置き換えます。コマンドにはバックスラッシュ(\)を使用しないでください。
プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。
Azkaban Web インターフェイスにアクセスします。 上部のナビゲーションバーで、[プロジェクト] をクリックします。
ページの右上隅にある [プロジェクトの作成] をクリックします。
[プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。
ページの右上隅にある [アップロード] をクリックします。
[プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。
ワークフローを実行します。
[プロジェクト] ページで、[フロー] タブをクリックします。
[フローの実行] をクリックします。
[実行] をクリックします。
[フローが送信されました] メッセージで、[続行] をクリックします。
ワークフローの詳細を表示します。
上部のナビゲーションバーで、[実行中] をクリックします。
[最近完了] タブをクリックします。
ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。
[ログ] をクリックして、ジョブログを表示します。
対話型モード
Spark 対話型リソースグループの接続アドレスを取得します。
AnalyticDB for MySQL コンソール にログオンします。コンソールの左上隅で、リージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Enterprise Edition、Basic Edition、または Data Lakehouse Edition タブで、管理するクラスタを見つけ、クラスタ ID をクリックします。
左側のナビゲーションウィンドウで、 をクリックし、リソースグループ管理 タブをクリックします。
クリック 操作 列の対応するリソースグループをクリックし、詳細 をクリックして内部エンドポイントと パブリックエンドポイントを表示します。括弧内の [ポート番号]
ボタンをクリックすると、接続アドレスをコピーできます。次の 2 つのケースでは、[パブリックアドレス] をクリックし、次に [ネットワークの申請] をクリックして、パブリックエンドポイントを手動で申請する必要があります。
詳細については、「クイックスタート: PHPを使用してBLOBをアップロード、ダウンロード、一覧表示する」をご参照ください。
Spark SQL ジョブを送信するためのクライアントツールは ECS にデプロイされており、ECS と AnalyticDB for MySQL は同じ VPC に属していません。
ワークフローファイルを作成し、ワークフローフォルダを 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 文はセミコロン(;)で区切ります。
プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。
Azkaban Web インターフェイスにアクセスします。上部のナビゲーションバーで、[プロジェクト] をクリックします。
ページの右上隅にある [プロジェクトの作成] をクリックします。
[プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。
ページの右上隅にある [アップロード] をクリックします。
[プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。
ワークフローを実行します。
[プロジェクト] ページで、[フロー] タブをクリックします。
[フローの実行] をクリックします。
[実行] をクリックします。
[フローが送信されました] メッセージで、[続行] をクリックします。
ワークフローの詳細を表示します。
上部のナビゲーションバーで、[実行中] をクリックします。
[最近完了] タブをクリックします。
ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。
[ログ] をクリックして、ジョブログを表示します。
Spark JAR ジョブのスケジュール
spark-submit コマンドラインツールをインストールし、関連パラメータを指定します。
説明指定が必要なパラメータは、
keyId、secretId、regionId、clusterId、rgNameのみです。 Spark JAR パッケージがオンプレミスデバイスに保存されている場合は、ossUploadPathなどの Object Storage Service (OSS) パラメータを指定する必要があります。ワークフローファイルを作成し、ワークフローフォルダを 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 ツールの実際のインストールパスに置き換えます。コマンドにはバックスラッシュ(\)を使用しないでください。
プロジェクトを作成し、手順 2 で作成したワークフローファイルをアップロードします。
Azkaban Web インターフェイスにアクセスします。上部のナビゲーションバーで、[プロジェクト] をクリックします。
ページの右上隅にある [プロジェクトの作成] をクリックします。
[プロジェクトの作成] ダイアログボックスで、[名前] パラメータと [説明] パラメータを構成し、[プロジェクトの作成] をクリックします。
ページの右上隅にある [アップロード] をクリックします。
[プロジェクトファイルのアップロード] ダイアログボックスで、ワークフローファイルを選択し、[アップロード] をクリックします。
ワークフローを実行します。
[プロジェクト] ページで、[フロー] タブをクリックします。
[フローの実行] をクリックします。
[実行] をクリックします。
[フローが送信されました] メッセージで、[続行] をクリックします。
ワークフローの詳細を表示します。
上部のナビゲーションバーで、[実行中] をクリックします。
[最近完了] タブをクリックします。
ワークフローの [実行 ID] をクリックします。 [ジョブリスト] タブをクリックして、各ジョブの詳細を表示します。
[ログ] をクリックして、ジョブログを表示します。