שימוש בתהליכי עבודה

כדי להגדיר ולהפעיל תהליך עבודה:

  1. יצירת תבנית של תהליך עבודה
  2. הגדרת אשכול מנוהל (זמני) או בחירת אשכול קיים
  3. הוספת משרות
  4. יצירת מופע של התבנית להפעלת תהליך העבודה

יצירת תבנית

מסוףGoogle Cloud

בוחרים באפשרות Create Workflow Template בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud , ואז מאשרים או מספקים את ההגדרות של התבנית, האשכול, המשימה והתלויות.

‫CLI של gcloud

מריצים את command הבא כדי ליצור משאב של תבנית תהליך עבודה ב-Managed Service for Apache Spark.

gcloud dataproc workflow-templates create TEMPLATE_ID \
    --region=REGION

הערות:

  • ‫REGION: מציינים את האזור שבו התבנית תפעל.
  • ‫TEMPLATE_ID: מזינים מזהה לתבנית, למשל workflow-template-1.
  • הצפנת CMEK. אתם יכולים להוסיף את הדגל --kms-key כדי להשתמש בהצפנת CMEK בארגומנטים של משימות בתבניות של תהליכי עבודה.

‫API בארכיטקטורת REST

שולחים WorkflowTemplate כחלק מבקשת workflowTemplates.create. אתם יכולים להוסיף את השדה WorkflowTemplate.EncryptionConfig.kmsKey כדי להשתמש בהצפנת CMEK בארגומנטים של משימות בתבנית של תהליך עבודה.

הגדרה או בחירה של אשכול

ב-Managed Service for Apache Spark אפשר ליצור אשכול "מנוהל" חדש לתהליך העבודה או להשתמש באשכול קיים.

  • אשכול קיים: כדי לבחור אשכול קיים לתהליך העבודה, קראו את המאמר שימוש בבוררי אשכולות בתהליכי עבודה.

  • אשכול מנוהל: צריך להגדיר אשכול מנוהל לתהליך העבודה. ‫Managed Service for Apache Spark ייצור את האשכול החדש הזה כדי להריץ משימות של תהליכי עבודה, ואז ימחק את האשכול בסוף תהליך העבודה.

    אפשר להגדיר אשכול מנוהל לתהליך העבודה באמצעות מסוף Google Cloud ,‏ Google Cloud CLI או Dataproc API.

    מסוףGoogle Cloud

    בוחרים באפשרות Create Workflow Template בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud , ואז מאשרים או מספקים את ההגדרות של התבנית, האשכול, המשימה והתלויות.

    Google Cloud CLI

    משתמשים בדגלים שעברו בירושה מ-gcloud dataproc cluster create כדי להגדיר את האשכול המנוהל, כמו מספר ה-workers וסוג המכונה של ה-master וה-worker.

    gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \
        --cluster-name=CLUSTER_NAME \
        --region=REGION \
        --master-machine-types="type=MACHINE_TYPE_1,rank=0" \
        --master-machine-types="type=MACHINE_TYPE_2,rank=1" \
        --worker-machine-types="type=PRIMARY_WORKER_MACHINE_TYPE_1,rank=0" \
        --worker-machine-types="type=PRIMARY_WORKER_MACHINE_TYPE_2,rank=1" \
        --num-workers=NUMBER \
        --service-account=SERVICE_ACCOUNT
    

    הערות:

    • ‫CLUSTER_NAME: השירות Managed Service for Apache Spark מוסיף סיומת לשם האשכול כדי לוודא שהוא ייחודי.
    • ‫MACHINE_TYPE: אתם יכולים להשתמש בסוגי מכונות מדורגים של מכונות וירטואליות גמישות כדי לספק עמידות במקרים שבהם המשאבים לא זמינים.
    • ‫SERVICE_ACCOUNT: אתם יכולים לציין חשבון שירות של מכונה וירטואלית בשביל האשכול המנוהל.

    ‫API בארכיטקטורת REST

    אפשר לעיין ב-WorkflowTemplatePlacement.ManagedCluster, שאותו אפשר לספק כחלק מ-WorkflowTemplate מלא שנשלח עם בקשת workflowTemplates.create או workflowTemplates.update.

    אתם יכולים להשתמש בשדה GceClusterConfig.serviceAccount כדי לציין חשבון שירות של מכונה וירטואלית לאשכול המנוהל.

הוספת משרות לתבנית

כל המשימות פועלות בו-זמנית, אלא אם מציינים תלות אחת או יותר בין המשימות. יחסי התלות של משימה מוגדרים כרשימה של משימות אחרות שצריכות להסתיים בהצלחה לפני שהמשימה הסופית יכולה להתחיל. צריך לציין step-id לכל משרה. המזהה חייב להיות ייחודי בתהליך העבודה, אבל לא חייב להיות ייחודי באופן גלובלי.

‫CLI של gcloud

כדי להגדיר את המשימה שרוצים להוסיף לתבנית, משתמשים בסוג העבודה ובדגלים שעוברים בירושה מ-gcloud dataproc jobs submit. אפשר להשתמש בדגל ‑‑start-after job-id of another workflow job כדי שהמשימה תתחיל אחרי שמשימה אחת או יותר בתהליך העבודה יסתיימו.

לדוגמה:

הוספת משימת Hadoop בשם "foo" לתבנית "my-workflow".

gcloud dataproc workflow-templates add-job hadoop \
    --region=REGION \
    --step-id=foo \
    --workflow-template=my-workflow \
    -- space separated job args

הוספת המשימה "bar" לתבנית "my-workflow", שתופעל אחרי שהמשימה "foo" בתהליך העבודה תסתיים בהצלחה.

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=bar \
    --start-after=foo \
    --workflow-template=my-workflow \
    -- space separated job args

מוסיפים עוד משימה, "baz", לתבנית "my-workflow", שתופעל אחרי שהמשימות "foo" ו-"bar" יסתיימו בהצלחה.

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=baz \
    --start-after=foo,bar \
    --workflow-template=my-workflow \
    -- space separated job args

‫API בארכיטקטורת REST

מידע נוסף זמין במאמר WorkflowTemplate.OrderedJob. השדה הזה מסופק כחלק מ-WorkflowTemplate שהושלם ונשלח עם בקשת workflowTemplates.create או workflowTemplates.update.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .

הפעלה של תהליך עבודה

ההפעלה של תבנית תהליך עבודה מריצה את תהליך העבודה שמוגדר בתבנית. אפשר להפעיל תבנית כמה פעמים, כלומר להריץ את תהליך העבודה כמה פעמים.

פקודת gcloud

gcloud dataproc workflow-templates instantiate TEMPLATE_ID \
    --region=REGION

הפקודה מחזירה מזהה פעולה, שבו אפשר להשתמש כדי לעקוב אחרי סטטוס תהליך העבודה.

פקודה ופלט לדוגמה:
gcloud beta dataproc workflow-templates instantiate my-template-id \
    --region=us-central1
...
WorkflowTemplate [my-template-id] RUNNING
...
Created cluster: my-template-id-rg544az7mpbfa.
Job ID teragen-rg544az7mpbfa RUNNING
Job ID teragen-rg544az7mpbfa COMPLETED
Job ID terasort-rg544az7mpbfa RUNNING
Job ID terasort-rg544az7mpbfa COMPLETED
Job ID teravalidate-rg544az7mpbfa RUNNING
Job ID teravalidate-rg544az7mpbfa COMPLETED
...
Deleted cluster: my-template-id-rg544az7mpbfa.
WorkflowTemplate [my-template-id] DONE

‫API בארכיטקטורת REST

מידע נוסף זמין במאמר workflowTemplates.instantiate.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .

כשלים במשימות של תהליכי עבודה

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

מעקב אחרי תהליך עבודה והצגה שלו ברשימה

‫CLI של gcloud

כדי לעקוב אחרי תהליך עבודה:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

הערה: הערך של operation-id מוחזר כשיוצרים מופע של תהליך העבודה באמצעות gcloud dataproc workflow-templates instantiate (ראו הפעלת תהליך עבודה).

כדי להציג את רשימת הסטטוסים של תהליכי העבודה:

gcloud dataproc operations list \
    --region=REGION \
    --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"

‫API בארכיטקטורת REST

כדי לעקוב אחרי תהליך עבודה, משתמשים ב-API‏ operations.get של Managed Service for Apache Spark.

כדי להציג רשימה של תהליכי עבודה פעילים, משתמשים ב-API‏ operations.list של Managed Service for Apache Spark עם מסנן תוויות.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .

סיום תהליך עבודה

אפשר לסיים תהליך עבודה באמצעות Google Cloud CLI או באמצעות קריאה ל-Dataproc API.

פקודת gcloud

gcloud dataproc operations cancel OPERATION_ID \
    --region=REGION
הערה: מזהה הפעולה שמוחזר כשיוצרים מופע של תהליך העבודה באמצעות gcloud dataproc workflow-templates instantiate (ראו הפעלת תהליך עבודה).

‫API בארכיטקטורת REST

אפשר לעיין ב-API‏ operations.cancel.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .

עדכון של תבנית תהליך עבודה

העדכונים לא משפיעים על תהליכי עבודה שפועלים. גרסת התבנית החדשה תחול רק על תהליכי עבודה חדשים.

‫CLI של gcloud

כדי לעדכן תבניות של תהליכי עבודה, אפשר להנפיק פקודות gcloud workflow-templates חדשות שמפנות למזהה של תבנית קיימת של תהליך עבודה:

לתבנית קיימת של תהליך עבודה.

‫API בארכיטקטורת REST

כדי לעדכן תבנית באמצעות ה-API בארכיטקטורת REST:

  1. מפעילים את workflowTemplates.get, שמחזירה את התבנית הנוכחית כשהשדה version מלא בגרסת השרת הנוכחית.
  2. מעדכנים את התבנית שאוחזרה.
  3. מפעילים את workflowTemplates.update עם התבנית המעודכנת.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .

מחיקת תבנית של תהליך עבודה

‫CLI של gcloud

gcloud dataproc workflow-templates delete TEMPLATE_ID \
    --region=REGION

הערה: מזהה הפעולה שמוחזר כשיוצרים מופע של תהליך העבודה באמצעות gcloud dataproc workflow-templates instantiate (ראו הפעלת תהליך עבודה).

‫API בארכיטקטורת REST

מידע נוסף זמין במאמר בנושא workflowTemplates.delete.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת המופעים של זרימות העבודה בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud .