YAML ファイルで WorkflowTemplate を定義し、テンプレートをインスタンス化してワークフローを実行できます。また、WorkflowTemplate の YAML ファイルをインポートしてエクスポートして、Dataproc WorkflowTemplate リソースを作成して更新することもできます。
YAML ファイルを使用してワークフローを実行する
最初にワークフロー テンプレート リソースを作成せずにワークフローを実行するには、gcloud dataproc workflow-templates instantiate-from-file コマンドを使用します。
- YAML ファイルでワークフロー テンプレートを定義します。YAML ファイルには、
id
フィールドを除いた必須のすべての WorkflowTemplate フィールドを含める必要があります。また、version
フィールドとすべての出力専用フィールドを除外する必要もあります。次のワークフロー例では、terasort
ステップのprerequisiteStepIds
リストが、teragen
ステップが正常に完了した後にのみterasort
ステップが始まるようにします。jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: us-central1-a
- ワークフローを実行します。
gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
Dataproc 自動ゾーン プレースメントで YAML ファイルを使用してワークフローをインスタンス化する
- YAML ファイルでワークフロー テンプレートを定義します。この YAML ファイルは、Dataproc 自動ゾーン プレースメントでクラスタのゾーンを選択できるように
zoneUri
フィールドが空の文字列( "')に設定されている点を除いて、以前の YAML ファイルと同じです。jobs: - hadoopJob: args: - teragen - '1000' - hdfs:///gen/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: teragen - hadoopJob: args: - terasort - hdfs:///gen/ - hdfs:///sort/ mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: terasort prerequisiteStepIds: - teragen placement: managedCluster: clusterName: my-managed-cluster config: gceClusterConfig: zoneUri: ''
- ワークフローを実行します。自動プレースメントを使用するときに、リージョンを
gcloud
コマンドに渡す必要があります。gcloud dataproc workflow-templates instantiate-from-file \ --file=TEMPLATE_YAML \ --region=REGION
WorkflowTemplate の YAML ファイルのインポートとエクスポート
WorkflowTemplate の YAML ファイルのインポートやエクスポートを行えます。通常、WorkflowTemplate は最初に YAML ファイルとしてエクスポートされ、YAML が編集されて、編集された YAML ファイルがインポートされてテンプレートが更新されます。
YAML ファイルに WorkflowTemplate をエクスポートします。エクスポート操作中に、
id
フィールドとversion
フィールド、すべての出力専用フィールドが出力からフィルタされ、エクスポートされた YAML ファイルに表示されません。 WorkflowTemplate のgcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \ --destination=TEMPLATE_YAML \ --region=REGION
id
と完全修飾テンプレート リソースname
("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID")のどちらでもコマンドに渡すことは可能です。YAML ファイルをローカルで編集します。テンプレートがエクスポートされたときに YAML ファイルからフィルタされた
id
、version
、出力専用フィールドは、インポートされた YAML ファイルでは許可されません。YAML ファイルに更新された WorkflowTemplate をインポートします。
WorkflowTemplate のgcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \ --source=TEMPLATE_YAML \ --region=REGION
id
と完全修飾テンプレート リソースname
("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID")のどちらでもコマンドに渡すことは可能です。同じ名前のテンプレート リソースは、上書き(更新)されてバージョン番号が大きくなります。同じ名前のテンプレートが存在しない場合は、作成されます。