Managed Service for Apache Spark の WorkflowTemplates API には、ワークフローを管理および実行するための 柔軟で使いやすいメカニズムが備えられています。ワークフロー テンプレートは、再利用可能なワークフロー構成です。ジョブを実行する場所に関する情報を含むジョブのグラフを定義します。
要点:
- ワークフロー テンプレートをインスタンス化すると、ワークフローが起動します。ワークフローは、クラスタ上のジョブの有向非巡回グラフ(DAG)を実行するオペレーションです。
- ワークフローによってマネージド クラスタが使用されている場合は、クラスタが作成され、ジョブが実行され、ジョブが終了したときにクラスタが削除されます。
- ワークフローによってクラスタ セレクタが使用されている場合は、選択された既存のクラスタでジョブが実行されます。
- ワークフローは複雑なジョブフローに最適です。依存関係が正常に完了した後に限りジョブが開始されるように、ジョブ依存関係を作成できます。
- ワークフロー テンプレートを作成するときに、Managed Service for Apache Spark ではクラスタの作成やクラスタへのジョブの送信は行いません。 ワークフロー テンプレートがインスタンス化 されると、Managed Service for Apache Spark はクラスタを作成または選択し、クラスタでワークフロー ジョブを実行します。
ワークフロー テンプレートの種類
マネージド クラスタ
ワークフロー テンプレートでは、マネージド クラスタを指定できます。ワークフローでは、「エフェメラル」クラスタを作成してワークフロー ジョブを実行し、ワークフローの終了時にこのクラスタを削除します。
クラスタ セレクタ
ワークフロー テンプレートでは、以前にクラスタに添付されていた 1 つ以上のユーザーラベルを指定することによって、ワークフロー ジョブを実行する既存のクラスタを指定できます。ワークフローは、すべてのラベルに一致するクラスタで実行されます。複数のクラスタがすべてのラベルと一致する場合、Managed Service for Apache Spark は、すべてのワークフロー ジョブを実行するために、YARN メモリの空き容量が最も多いクラスタを選択します。ワークフローの終了時に、Managed Service for Apache Spark は選択したクラスタを削除しません。詳細については、 ワークフローでクラスタ セレクタを使用する をご覧ください。
パラメータ化
ワークフロー テンプレートに別の値を指定して複数回使用する場合は、パラメータを使用して、実行ごとにワークフロー テンプレートを編集する必要がなくなります。
テンプレートでパラメータを定義する。
実行ごとにパラメータに異なる値を渡す。
詳細については、ワークフロー テンプレートのパラメータ化をご覧ください。
インライン
ワークフローをインラインでインスタンス化するには、gcloud コマンドと
ワークフロー テンプレート YAML ファイルを組み合わせて使用するか、Managed Service for Apache Spark
InstantiateInline
API を呼び出します(インライン Dataproc ワークフローの使用を参照)。
インライン ワークフローでは、ワークフロー テンプレートのリソースは作成または変更されません。
ワークフロー テンプレートのユースケース
反復的なタスクの自動化: 頻繁に使用されるクラスタ構成とジョブが、ワークフローによってカプセル化されます。
Transactional、Fire、Forget API インタラクション モデル。ワークフロー テンプレートは、次の一般的なフローに関与する手順を置き換えます。
- クラスタの作成
- ジョブの送信
- ポーリング
- クラスタの削除
ワークフロー テンプレートでは、単一のトークンを使用して、クラスタの作成から削除までの進行状況を追跡し、エラー処理および回復を自動化します。また、Cloud Run 関数や Managed Service for Apache Airflow などの他のツールと Managed Service for Apache Spark の統合を簡素化します。
エフェメラル クラスタと長寿命クラスタのサポート: Apache Hadoop の実行に関連して、クラスタを調整して適正サイズに変更する作業が一般的に複雑になります。 エフェメラル(マネージド)クラスタは、単一のワークロードを実行するため、より簡単に構成できます。より寿命が長いクラスタでクラスタ セレクタを使用すると、クラスタの作成および削除に伴う償却コストが発生することなく、同じワークロードを繰り返し実行できます。
Granular IAM セキュリティ。Managed Service for Apache Spark クラスタを作成してジョブを送信するには、オールオアナッシングの IAM の権限が必要です。 ワークフロー テンプレートは、テンプレートごとの workflowTemplates.instantiate 権限を使用し、クラスタまたはジョブの権限に依存しません。