YAML ファイルでワークフロー テンプレートを定義し、テンプレートをインスタンス化してワークフローを実行できます。また、ワークフロー テンプレートの YAML ファイルをインポートやエクスポートして、Dataproc ワークフロー テンプレート リソースの作成や更新をすることもできます。
YAML ファイルを使用してワークフローを実行する
最初にワークフロー テンプレート リソースを作成せずにワークフローを実行するには、gcloud dataproc workflow-templates instantiate-from-file コマンドを使用します。
- YAML ファイルで WorkflowTemplate を定義します。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=your-template.yaml \ --region=region
Dataproc 自動ゾーン プレースメントで YAML ファイルを使用してワークフローをインスタンス化する
- YAML ファイルで WorkflowTemplate を定義します。この 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=your-template.yaml \ --region=region
WorkflowTemplate の YAML ファイルのインポートとエクスポート
WorkflowTemplate の YAML ファイルのインポートやエクスポートを行えます。通常、ワークフロー テンプレートは最初に YAML ファイルとしてエクスポートされ、YAML が編集されて、編集された YAML ファイルがインポートされてテンプレートが更新されます。
YAML ファイルに ワークフロー テンプレートをエクスポートします。エクスポート操作中に、
id
フィールドとversion
フィールド、すべての出力専用フィールドが出力からフィルタされ、エクスポートされた YAML ファイルには表示されません。gcloud dataproc workflow-templates export template-id or template-name \ --destination=template.yaml \ --region=region
WorkflowTemplate のid
と完全修飾テンプレート リソースname
("projects/projectId/regions/region/workflowTemplates/template_id")のどちらでもコマンドに渡すことは可能です。YAML ファイルをローカルで編集します。テンプレートがエクスポートされたときに YAML ファイルからフィルタされた
id
、version
、出力専用フィールドは、インポートされた YAML ファイルでは許可されません。更新されたワークフロー テンプレートの YAML ファイルをインポートします。
gcloud dataproc workflow-templates import template-id or template-name \ --source=template.yaml \ --region=region
WorkflowTemplate のid
と完全修飾テンプレート リソースname
("projects/projectId/regions/region/workflowTemplates/template_id")のどちらでもコマンドに渡すことは可能です。同じ名前のテンプレート リソースは、上書き(更新)されてバージョン番号が大きくなります。同じ名前のテンプレートが存在しない場合は、作成されます。