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

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

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

יצירת תבנית

‫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 בארגומנטים של משימות בתבנית של תהליך עבודה. kmsKey

המסוף

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

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

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

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

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

    אפשר להגדיר אשכול מנוהל לזרימת העבודה באמצעות כלי שורת הפקודה gcloud או Dataproc API.

    Google Cloud CLI

    משתמשים בדגלים שעוברים בירושה מ-gcloud dataproc cluster create כדי להגדיר את האשכול המנוהל, כמו מספר העובדים וסוג המכונה של המאסטר והעובד. Managed Service for Apache Spark יוסיף סיומת לשם האשכול כדי לוודא שהוא ייחודי. אפשר להשתמש בדגל --service-account כדי לציין חשבון שירות של מכונה וירטואלית עבור האשכול המנוהל.

    gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \
        --region=REGION \
        --master-machine-type=MACHINE_TYPE \
        --worker-machine-type=MACHINE_TYPE \
        --num-workers=NUMBER \
        --cluster-name=CLUSTER_NAME
        --service-account=SERVICE_ACCOUNT
    

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

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

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

    המסוף

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

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

כל המשימות מורצות בו-זמנית, אלא אם מציינים תלות של משימה אחת או יותר. התלות של משימה מוגדרת כרשימה של משימות אחרות שצריכות להסתיים בהצלחה לפני שהמשימה הסופית יכולה להתחיל. צריך לספק 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

הערה: מזהה הפעולה מוחזר כשמפעילים את תהליך העבודה באמצעות 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 של Managed Service for Apache Spark‏ operations.list עם מסנן של תווית.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת זרימות העבודה שנוצרו בדף 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

מידע נוסף זמין במאמר בנושא operations.cancel API.

המסוף

אפשר לראות את תבניות זרימת העבודה הקיימות ואת זרימות העבודה שנוצרו בדף 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 .