שימוש בקובצי YAML בתהליכי עבודה

אפשר להגדיר תבנית של תהליך עבודה בקובץ YAML, ואז ליצור מופע של התבנית כדי להריץ את תהליך העבודה. אפשר גם לייבא ולייצא קובץ YAML של תבנית תהליך עבודה כדי ליצור ולעדכן משאב של תבנית תהליך עבודה ב-Dataproc.

הפעלת תהליך עבודה באמצעות קובץ YAML

כדי להריץ תהליך עבודה בלי ליצור קודם משאב של תבנית תהליך עבודה, משתמשים בפקודה gcloud dataproc workflow-templates instantiate-from-file.

  1. מגדירים את תבנית תהליך העבודה בקובץ YAML. קובץ ה-YAML חייב לכלול את כל שדות החובה של WorkflowTemplate, חוץ מהשדה id. בנוסף, הוא לא יכול לכלול את השדה version ואת כל השדות שמוגדרים כפלט בלבד. בדוגמה הבאה של תהליך העבודה, הרשימה prerequisiteStepIds בשלב terasort מבטיחה שהשלב terasort יתחיל רק אחרי שהשלב teragen יושלם בהצלחה.
    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. מריצים את תהליך העבודה:
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

יצירת מופע של תהליך עבודה באמצעות קובץ YAML עם Dataproc Auto Zone Placement

  1. מגדירים את תבנית תהליך העבודה בקובץ YAML. קובץ ה-YAML הזה זהה לקובץ ה-YAML הקודם, אלא שהשדה zoneUri מוגדר למחרוזת הריקה ('') כדי לאפשר ל-Dataproc Auto Zone Placement לבחור את האזור עבור האשכול.
    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. מריצים את תהליך העבודה. כשמשתמשים במיקום אוטומטי, צריך להעביר אזור לפקודה gcloud.
    gcloud dataproc workflow-templates instantiate-from-file \
        --file=TEMPLATE_YAML \
        --region=REGION
    

ייבוא וייצוא של קובץ YAML של תבנית זרימת עבודה

אתם יכולים לייבא ולייצא קובצי YAML של תבניות זרימת עבודה. בדרך כלל, מייצאים קודם תבנית של זרימת עבודה כקובץ YAML, ואז עורכים את קובץ ה-YAML, ואז מייבאים את קובץ ה-YAML הערוך כדי לעדכן את התבנית.

  1. מייצאים את תבנית זרימת העבודה לקובץ YAML. במהלך פעולת הייצוא, השדות id ו-version וכל השדות שהפלט שלהם הוא לקריאה בלבד מסוננים מהפלט ולא מופיעים בקובץ ה-YAML המיוצא.

    gcloud dataproc workflow-templates export TEMPLATE_ID or TEMPLATE_NAME \
        --destination=TEMPLATE_YAML \
        --region=REGION
    
    אפשר להעביר לפקודה את WorkflowTemplateid או את משאב התבנית המוגדר במלואו name ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID").

  2. עורכים את קובץ ה-YAML באופן מקומי. שימו לב שאי אפשר להשתמש בקובץ ה-YAML המיובא בשדות id, version ובשדות שהם רק לפלט, שסוננו מקובץ ה-YAML כשייצאתם את התבנית.

  3. ייבוא של קובץ ה-YAML של תבנית זרימת העבודה המעודכנת:

    gcloud dataproc workflow-templates import TEMPLATE_ID or TEMPLATE_NAME \
        --source=TEMPLATE_YAML \
        --region=REGION
    
    אפשר להעביר לפקודה את WorkflowTemplateid או את משאב התבנית המוגדר במלואו name ("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID"). משאב התבנית עם אותו שם של תבנית יוחלף (יעודכן) ומספר הגרסה שלו יוגדל. אם לא קיימת תבנית עם אותו שם, היא תיווצר.