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

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

הפעלת תהליך עבודה באמצעות קובץ 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 עם Managed Service for Apache Spark Auto Zone Placement

  1. מגדירים את תבנית זרימת העבודה בקובץ YAML. קובץ ה-YAML הזה זהה לקובץ ה-YAML הקודם, אבל השדה zoneUri מוגדר למחרוזת ריקה ('') כדי לאפשר ל-Managed Service for Apache Spark לבחור אוטומטית את האזור של האשכול.
    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
    
    אפשר להעביר לפקודה את WorkflowTemplate id או את משאב התבנית המלא name ("projects/PROJECT_ID/regions/REGION/workflowTemplates/TEMPLATE_ID").

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

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

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