Menggunakan file YAML dengan alur kerja

Anda dapat menentukan template alur kerja dalam file YAML, lalu membuat instance template untuk menjalankan alur kerja. Anda juga dapat mengimpor dan mengekspor file YAML template alur kerja untuk membuat dan memperbarui resource template alur kerja Dataproc.

Menjalankan alur kerja menggunakan file YAML

Untuk menjalankan alur kerja tanpa membuat resource template alur kerja terlebih dahulu, gunakan perintah gcloud dataproc Workflow-templates instantiate-from-file.

  1. Tentukan template alur kerja Anda dalam file YAML. File YAML harus mencakup semua kolom WorkflowTemplate yang diperlukan kecuali kolom id. File ini juga harus mengecualikan kolom version dan semua kolom khusus output. Dalam contoh alur kerja berikut, daftar prerequisiteStepIds dalam langkah terasort memastikan langkah terasort hanya akan dimulai setelah langkah teragen berhasil diselesaikan.
    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
    
  2. Jalankan alur kerja:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Membuat instance alur kerja menggunakan file YAML dengan Penempatan Zona Otomatis Dataproc

  1. Tentukan template alur kerja Anda dalam file YAML. File YAML ini sama dengan file YAML sebelumnya, hanya saja kolom zoneUri disetel ke string kosong ('') untuk memungkinkan Dataproc Auto Zone Placement memilih zona untuk cluster.
    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: ''
    
  2. Jalankan alur kerja. Saat menggunakan Penempatan Otomatis, Anda harus meneruskan region ke perintah gcloud.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

Mengimpor dan mengekspor file YAML template alur kerja

Anda dapat mengimpor dan mengekspor file YAML template alur kerja. Biasanya, template alur kerja diekspor terlebih dahulu sebagai file YAML, kemudian YAML akan diedit, kemudian file YAML yang telah diedit diimpor untuk memperbarui template.

  1. Ekspor template alur kerja ke file YAML. Selama operasi ekspor, kolom id dan version, serta semua kolom khusus output akan difilter dari output dan tidak akan muncul dalam file YAML yang diekspor.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    Anda dapat meneruskan WorkflowTemplate id atau resource template yang sepenuhnya memenuhi syarat name ("projects/PROJECT_ID/region/REGION/workflowTemplates/TEMPLATE_ID") ke perintah.

  2. Mengedit file YAML secara lokal. Perlu diperhatikan bahwa kolom id, version, dan khusus output, yang difilter dari file YAML saat template diekspor, tidak diizinkan dalam file YAML yang diimpor.

  3. Impor template alur kerja yang diperbarui file YAML:

    gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \
        --source=TEMPLATE_YAML \
        --region=REGION
    
    Anda dapat meneruskan WorkflowTemplate id atau resource template yang sepenuhnya memenuhi syarat name ("projects/PROJECT_ID/region/region/workflowTemplates/TEMPLATE_ID") ke perintah. Resource template dengan nama template yang sama akan ditimpa (diperbarui) dan nomor versinya akan bertambah. Jika tidak ada {i>template<i} dengan nama {i>template<i} yang sama, template tersebut akan dibuat.