שימוש בקובצי 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 מוגדר למחרוזת ריקה ('') כדי לאפשר ל-Auto Zone Placement ב-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
    
    אפשר להעביר לפקודה את WorkflowTemplateid או את משאב התבנית המוגדר במלואו 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
    
    אפשר להעביר לפקודה את WorkflowTemplateid או את משאב התבנית המוגדר במלואו name ("projects/PROJECT_ID/regions/region/workflowTemplates/TEMPLATE_ID"). משאב התבנית עם אותו שם של תבנית יוחלף (יעודכן) ומספר הגרסה שלו יוגדל. אם לא קיימת תבנית עם אותו שם, היא תיווצר.