Lindorm が提供する Lindorm 分散処理システム (LDPS) を使用すると、データ管理 (DMS) のタスクオーケストレーション機能を使用して、Lindorm Spark ジョブをスケジュールし、Lindorm Spark ジョブの発行履歴とログを表示できます。 LDPS は、データ生成、インタラクティブ分析、機械学習、グラフコンピューティングなどのシナリオでのコンピューティング要件を満たすことができます。 このトピックでは、DMS を使用して Lindorm Spark ジョブを管理する方法について説明します。
前提条件
DMS がアクティブ化されている。
Lindorm インスタンスに対して LDPS がアクティブ化されている。 詳細については、「LDPS をアクティブ化し、構成を変更する」をご参照ください。
ジョブが開発されている。 詳細については、「Java でジョブを作成する」または「Python でジョブを作成する」をご参照ください。
開発されたジョブが HDFS またはオブジェクトストレージサービス (OSS) にアップロードされている。 詳細については、「Lindorm コンソールでファイルをアップロードする」をご参照ください。
Lindorm Spark タスクフローを作成する
DMS コンソール V5.0 にログインします。
[タスクオーケストレーション] ページに移動します。
簡易モード:
[シーンガイド] セクションで、[データ転送と処理 (DTS)] をクリックします。
ページ右側の [データ処理] セクションで、[タスクオーケストレーション] をクリックします。
通常モード: 上部のナビゲーションバーで、 を選択します。
[タスクオーケストレーション] ページで、[タスクフローの作成] をクリックします。
[タスクフローの作成] ダイアログボックスで、[タスクフロー名] と [説明] を指定し、[OK] をクリックします。
左側の [タスクタイプ] セクションで、[lindorm Spark] ノードをキャンバスにドラッグし、ノードを別のノードに接続して、ノード間の依存関係を指定します。
[lindorm Spark] ノードを構成します。
[lindorm Spark] ノードをダブルクリックするか、[lindorm Spark] ノードをクリックしてから
アイコンをクリックします。表示されるページで、実行するジョブの基本パラメーターとカスタムパラメーターを構成します。
[基本構成] セクションで、基本パラメーターを構成します。 次の表は、基本パラメーターについて説明しています。
パラメーター
説明
リージョン
Lindorm インスタンスがデプロイされているリージョンを選択します。
Lindorm インスタンス
Lindorm インスタンスの ID を選択します。
タスクタイプ
Spark ジョブタイプを選択します。 次のタイプのジョブがサポートされています。
JAR
Python
SQL
[ジョブ構成] セクションで、実行するジョブのカスタムパラメーターを構成します。 次のセクションでは、さまざまなタイプの Spark ジョブの構成テンプレートとカスタムパラメーターについて説明します。
次のセクションでは、JAR Spark ジョブの構成テンプレートとカスタムパラメーターについて説明します。
{ "mainResource" : "oss://path/to/your/file.jar", // JAR パッケージが HDFS または OSS に保存されているパス "mainClass" : "path.to.main.class", // JAR ジョブのエントリポイントとして使用されるクラス "args" : [ "arg1", "arg2" ], // mainClass パラメーターに渡されるパラメーター "configs" : { "spark.hadoop.fs.oss.endpoint" : "", // Spark ジョブが OSS に保存されているパス "spark.hadoop.fs.oss.accessKeyId" : "", // OSS にアクセスするために使用される AccessKey ID "spark.hadoop.fs.oss.accessKeySecret" : "", // OSS にアクセスするために使用される AccessKey シークレット "spark.hadoop.fs.oss.impl" : "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem", // OSS にアクセスするために使用されるクラス。値を org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem に設定します。 "spark.sql.shuffle.partitions" : "20" // シャッフルパーティションの数 } }パラメーター
種類
パラメーター
タイプ
必須
mainResource
String
はい
JAR パッケージが HDFS または OSS に保存されているパスです。
JAR パッケージが保存されている HDFS パス: hdfs:///path/spark-examples_2.12-3.1.1.jar
JAR パッケージが保存されている OSS パス: oss://testBucketName/path/spark-examples_2.12-3.1.1.jar
mainClass
String
はい
JAR ジョブでプログラムのエントリ ポイントとして使用されるクラスです。
com.aliyun.ldspark.SparkPi
mainResource
配列
いいえ
mainClass パラメーターに渡されるパラメーターです。
["arg1", "arg2"]
構成
JSON
いいえ
Sparkジョブのシステムパラメーター。ジョブがOSSにアップロードされる場合は、configsで次のパラメーターを構成する必要があります。
spark.hadoop.fs.oss.endpoint: SparkジョブがOSSに格納されているパス。
spark.hadoop.fs.oss.accessKeyId: OSSへのアクセスに使用するAccessKey ID。コンソールでAccessKey IDを取得できます。詳細については、「AccessKeyペアの取得」をご参照ください。
spark.hadoop.fs.oss.accessKeySecret: OSSへのアクセスに使用するAccessKeyシークレット。コンソールでAccessKeyシークレットを取得できます。詳細については、「AccessKeyペアの取得」をご参照ください。
spark.hadoop.fs.oss.impl: OSSへのアクセスに使用するクラス。値を org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem に設定します。
{ "spark.sql.shuffle.partitions": "200"}
次のセクションでは、Python Sparkジョブの構成テンプレートとカスタムパラメーターについて説明します。
{ "mainResource" : "oss://path/to/your/file.py", "args" : [ "arg1", "arg2" ], "configs" : { "spark.hadoop.fs.oss.endpoint" : "", "spark.hadoop.fs.oss.accessKeyId" : "", "spark.hadoop.fs.oss.accessKeySecret" : "", "spark.hadoop.fs.oss.impl" : "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem", "spark.submit.pyFiles" : "oss://path/to/your/project_file.py,oss://path/to/your/project_module.zip", "spark.archives" : "oss://path/to/your/environment.tar.gz#environment", "spark.sql.shuffle.partitions" : "20" } }パラメーター
タイプ
必須
説明
例
mainResource
String
はい
PythonファイルがOSSまたはHDFSに保存されているパス。
Pythonファイルが保存されているOSSパス: oss://testBucketName/path/spark-examples.py
Pythonファイルが保存されているHDFSパス: hdfs:///path/spark-examples.py
args
Array
いいえ
mainClassパラメーターに渡されるパラメーター。
["arg1", "arg2"]
configs
Json
いいえ
Sparkジョブのシステムパラメーター。ジョブをOSSにアップロードする必要がある場合は、configsで次のパラメーターを構成する必要があります。
spark.hadoop.fs.oss.endpoint: SparkジョブがOSSに保存されているパス。
spark.hadoop.fs.oss.accessKeyId: OSSへのアクセスに使用するAccessKey ID。 AccessKey IDはコンソールで取得できます。 詳細については、AccessKeyペアの取得をご参照ください。
spark.hadoop.fs.oss.accessKeySecret: OSSへのアクセスに使用するAccessKeyシークレット。 AccessKeyシークレットはコンソールで取得できます。 詳細については、AccessKeyペアの取得をご参照ください。
spark.hadoop.fs.oss.impl: OSSへのアクセスに使用するクラス。 値を org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem に設定します。
{"spark.sql.shuffle.partitions": "200"}
次のセクションでは、SQLジョブの構成テンプレートとカスタムパラメーターについて説明します。
{ "mainResource" : "oss://path/to/your/file.sql", "configs" : { "spark.hadoop.fs.oss.endpoint" : "", "spark.hadoop.fs.oss.accessKeyId" : "", "spark.hadoop.fs.oss.accessKeySecret" : "", "spark.hadoop.fs.oss.impl" : "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem", "spark.sql.shuffle.partitions" : "20" } }パラメーター
タイプ
必須
説明
例
mainResource
String
はい
SQLファイルが OSS または HDFS に保存されているパスです。
SQL ファイルが保存されている OSS パス: oss://testBucketName/path/spark-examples.sql
SQL ファイルが保存されている HDFS パス: hdfs:///path/spark-examples.sql
configs
Json
いいえ
SQLジョブのその他の構成です。
{"spark.executor.memory" : "8g"}
上記の設定が完了したら、左上隅にある [試行実行] をクリックして、ジョブが想定どおりに実行されるかどうかを確認します。
タスクフローを公開します。すべてのノードが構成されたら、現在のタスクフローのページの左上隅にある [公開] をクリックします。

タスクフローの公開履歴とログを表示する
[タスクオーケストレーション] ページで、公開履歴とログを表示するタスクフローの名前をクリックします。
表示されたページの右上隅にある [O&M に移動] をクリックします。

タスクフローの公開履歴とログを表示します。
タスクフローの公開履歴を表示します。 [タスクフロー情報] ページで、[公開済みタスク] タブをクリックして、タスクフローの公開履歴を表示します。

タスクフローのログを表示します。
[実行履歴] タブで、左上隅のドロップダウンリストから [スケジュールトリガー] または [手動でトリガー] を選択して、タスクフロー内のすべてのノードの詳細を表示します。

表示するノードの行にある [表示] をクリックします。次に、Lindorm Spark ジョブの送信ログを表示し、ノードのジョブ ID と SparkUI を取得します。
説明ジョブの送信に失敗した場合は、チケットを提出する際に、ジョブ ID と SparkUI を提供してください。
詳細設定
DMS コンソールで Lindorm Spark タスクフローを構成できます。 Lindorm Spark タスクフローを構成した後、タスクフローを再公開する必要があります。
スケジューリング設定の構成
ビジネス要件に基づいてスケジューリングポリシーを構成できます。 Lindorm Spark タスクフローは、スケジューリングポリシーに基づいて自動的に実行されます。 スケジューリングポリシーを構成するには、次の手順を実行します。
[タスクオーケストレーション] ページで、スケジューリングポリシーを構成するタスクフローの名前をクリックします。
表示されるページの左下隅にある [タスクフロー情報] をクリックします。

右側の [スケジューリング設定] セクションで、[スケジューリングを有効にする] をオンにして、スケジューリングポリシーを構成します。次の表に、構成できるパラメーターを示します。
例:タスクフローを毎日 00:00 と 12:00 にスケジュールする場合、次のパラメーターを設定してスケジューリングポリシーを構成します。
[スケジューリングタイプ] を [Cyclic scheduling(循環スケジューリング)] に設定します。
[スケジューリングサイクル] ドロップダウンリストから [時間] を選択します。
[時間指定スケジューリング] フィールドで、[指定時間] を選択します。 [指定時間] ドロップダウンリストから [0 時間] と [12 時間] を選択します。
変数の構成
循環スケジューリングが有効になっているタスクフローの場合、実行するジョブの時間変数を構成できます。たとえば、ノードの bizdate 時間変数を構成できます。時間変数は、タスクが実行される時点の前日を指定します。時間変数を構成するには、次の手順を実行します。
現在のタスクフローページで、[lindorm Spark] ノードをダブルクリックするか、[lindorm Spark] ノードをクリックして
アイコンをクリックします。右側のナビゲーションペインで、[変数設定] をクリックします。
[ノード変数] タブまたは [タスクフロー変数] タブで、変数を追加します。
[ジョブ構成] セクションで、変数を使用します。その他の変数については、変数 をご参照ください。
通知の管理
タスクフローの通知機能を有効にすると、システムはタスクフローの実行結果に基づいて通知メッセージを送信します。通知機能を有効にするには、次の手順を実行します。
現在のタスクフローページの左下隅にある [通知設定] をクリックします。
ビジネス要件に基づいて、次のいずれかの通知スイッチをオンにします。
基本通知
成功通知:タスクフローが実行されると、システムは通知メッセージを送信します。
失敗通知:タスクフローの実行に失敗すると、システムは通知メッセージを送信します。
タイムアウト通知:タスクフローがタイムアウトすると、システムは通知メッセージを送信します。
アラート通知:タスクが開始されようとしているときに、システムは通知メッセージを送信します。
(オプション):メッセージの受信者を構成します。メッセージ受信者の構成方法の詳細については、通知ルールの管理 をご参照ください。
SQLステートメントを実行する
DMS コンソール V5.0 にログオンします。
[ホーム] タブをクリックします。
左側のナビゲーションペインで、
アイコンをクリックしてインスタンスを作成します。[インスタンスの追加] ダイアログボックスで、[nosql データベース] セクションの [lindorm_compute] を選択します。

インスタンスの [インスタンスリージョン]、[インスタンス ID]、[データベースアカウント]、[データベースパスワード] を指定し、[送信] をクリックします。
表示されるダイアログボックスで、[送信] をクリックして SQLConsole に移動します。
[sqlconsole] タブで、実行する SQL ステートメントを入力し、[実行] をクリックします。
関連情報
DMS のタスクオーケストレーション機能の詳細については、「概要」をご参照ください。