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

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

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

יצירת תבנית

‫CLI של gcloud

מריצים את הפקודה command הבאה כדי ליצור משאב של תבנית לתהליך עבודה ב-Dataproc.

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 של Dataproc ב- Google Cloud console.

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

‫Dataproc יכול ליצור ולהשתמש באשכול חדש ומנוהל עבור זרימת העבודה שלכם, או באשכול קיים.

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

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

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

    Google Cloud CLI

    משתמשים בדגלים שעוברים בירושה מ-gcloud dataproc cluster create כדי להגדיר את האשכול המנוהל, כמו מספר העובדים וסוג המכונה של המאסטר והעובד. ‫Dataproc יוסיף סיומת לשם האשכול כדי להבטיח שהוא יהיה ייחודי. אתם יכולים להשתמש בדגל --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 של Dataproc ב- Google Cloud console.

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

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

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

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

פקודת 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 של Dataproc ב- Google Cloud console.

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

אם תהליך העבודה כולל כמה משימות, והפעולה של אחת מהן נכשלת, תהליך העבודה כולו ייכשל. ‫Dataproc ינסה לצמצם את ההשפעה של הכשלים על ידי כך שכל המשימות שפועלות בו-זמנית ייכשלו, וימנע את ההתחלה של משימות עוקבות.

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

‫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 של Dataproc.

כדי להציג רשימה של תהליכי עבודה פעילים, משתמשים ב-Dataproc operations.list API עם מסנן תוויות.

המסוף

אפשר לראות את תבניות תהליכי העבודה הקיימות ואת תהליכי העבודה שיצרתם בדף Workflows של Dataproc ב- Google Cloud console.

הפסקת תהליך עבודה

אפשר להפסיק את זרימת העבודה באמצעות 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 של Dataproc ב- Google Cloud console.

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

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

‫CLI של gcloud

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

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

API ל-REST

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

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

המסוף

אפשר לראות את תבניות תהליכי העבודה הקיימות ואת תהליכי העבודה שיצרתם בדף Workflows של Dataproc ב- Google Cloud console.

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

‫CLI של gcloud

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

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

API ל-REST

ראו workflowTemplates.delete.

המסוף

אפשר לראות את תבניות תהליכי העבודה הקיימות ואת תהליכי העבודה שיצרתם בדף Workflows של Dataproc ב- Google Cloud console.