בדף הזה תמצאו מידע שיעזור לכם לעקוב אחרי תהליכי עבודה של Managed Service for Apache Spark ולפתור בעיות בהם.
הצגת רשימה של תהליכי עבודה
מופע של WorkflowTemplate נקרא workflow והוא מוגדר כ-operation.
מריצים את הפקודה gcloud הבאה כדי להציג את רשימת תהליכי העבודה של הפרויקט:
gcloud dataproc operations list \ --region=region \ --filter="operationType = WORKFLOW"
... OPERATION_NAME DONE projects/.../operations/07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../operations/1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
הנה בקשה לדוגמה להצגת כל תהליכי העבודה שהופעלו מתבנית של 'terasort':
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id=terasort"
... OPERATION_NAME DONE projects/.../07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
שימו לב שרק החלק של ה-UUID ב-OPERATION_NAME משמש בשאילתות הבאות.
שימוש ב-WorkflowMetadata
השדה operation.metadata מספק מידע שיעזור לכם לאבחן כשלים בתהליך העבודה.
הנה דוגמה
WorkflowMetadata,
כולל גרף של צמתים (משימות), שמוטמעים בפעולה:
{
"name": "projects/my-project/regions/us-central1/operations/671c1d5d-9d24-4cc7-8c93-846e0f886d6e",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataproc.v1.WorkflowMetadata",
"template": "terasort",
"version": 1,
"createCluster": {
"operationId": "projects/my-project/regions/us-central1/operations/8d472870-4a8b-4609-9f7d-48daccb028fc",
"Done": true
},
"graph": {
"nodes": [
{
"stepId": "teragen",
"jobId": "teragen-vtrprwcgepyny",
"state": "COMPLETED"
},
{
"stepId": "terasort",
"prerequisiteStepIds": [
"teragen"
],
"jobId": "terasort-vtrprwcgepyny",
"state": "FAILED",
"error": "Job failed"
},
{
"stepId": "teravalidate",
"prerequisiteStepIds": [
"terasort"
],
"state": "FAILED",
"error": "Skipped, node terasort failed"
}
]
},
"deleteCluster": {
"operationId": "projects/my-project/regions/us-central1/operations/9654c67b-2642-4142-a145-ca908e7c81c9",
"Done": true
},
"state": "DONE",
"clusterName": "terasort-cluster-vtrprwcgepyny"
},
"done": true,
"error": {
"message": "Workflow failed"
}
}
Done!
אחזור תבנית
כפי שמוצג בדוגמה הקודמת, התג metadata מכיל את מזהה התבנית והגרסה שלה.
"template": "terasort", "version": 1,
אם תבנית לא נמחקת, אפשר לאחזר גרסאות של תבנית שהופעלה באמצעות בקשת describe-with-version.
gcloud dataproc workflow-templates describe terasort \ --region=region \ --version=1
כדי לראות את הפעולות באשכול שהופעלו על ידי תבנית:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... OPERATION_NAME DONE projects/.../cf9ce692-d6c9-4671-a909-09fd62041024 True projects/.../1bbaefd9-7fd9-460f-9adf-ee9bc448b8b7 True
הנה דוגמה לבקשה להצגת משרות שנשלחו מתבנית:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id = terasort"
... JOB_ID TYPE STATUS terasort2-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE terasort3-3xwsy6ubbs4ak pyspark DONE terasort2-3xwsy6ubbs4ak pyspark DONE terasort1-3xwsy6ubbs4ak pyspark DONE terasort3-ajov4nptsllti pyspark DONE terasort2-ajov4nptsllti pyspark DONE terasort1-ajov4nptsllti pyspark DONE terasort1-b262xachbv6c4 pyspark DONE terasort1-cryvid3kreea2 pyspark DONE terasort1-ndprn46nesbv4 pyspark DONE terasort1-yznruxam4ppxi pyspark DONE terasort1-ttjbhpqmw55t6 pyspark DONE terasort1-d7svwzloplbni pyspark DONE
הצגת רשימה של משרות שנשלחו ממופע של תהליך עבודה:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... JOB_ID TYPE STATUS terasort3-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE
פסק זמן בתהליך העבודה
אפשר להגדיר זמן קצוב לתהליך העבודה, כך שאם המשימות בתהליך לא יסתיימו בפרק הזמן הזה, התהליך יבוטל. תקופת הזמן הקצובה חלה על DAG (גרף מכוון ללא מעגלים) של המשימות בתהליך העבודה (רצף המשימות בתהליך העבודה), ולא על פעולת תהליך העבודה כולה. תקופת הזמן הקצוב לתפוגה מתחילה כשמתחילה משימת זרימת העבודה הראשונה – היא לא כוללת את הזמן שנדרש ליצירת אשכול מנוהל. אם יש עבודות שפועלות בסוף תקופת הזמן הקצוב לתפוגה, כל העבודות שפועלות מופסקות, תהליך העבודה מסתיים, ואם תהליך העבודה פעל באשכול מנוהל, האשכול נמחק.
היתרון: התכונה הזו מאפשרת לכם להימנע מסיום ידני של תהליך עבודה שלא הושלם בגלל משימות תקועות.
הגדרת פסק זמן לתבנית של תהליך עבודה
אתם יכולים להגדיר זמן קצוב לתפוגה של תבנית תהליך עבודה כשאתם יוצרים תבנית תהליך עבודה. אפשר גם להוסיף זמן קצוב לתפוגה לתהליך עבודה לעדכון תבנית קיימת של תהליך עבודה.
gcloud
כדי להגדיר זמן קצוב לתהליך עבודה בתבנית חדשה, משתמשים בדגל --dag-timeout עם הפקודה gcloud dataproc workflow-templates create. אפשר להשתמש בסיומות s, m, h ו-d כדי להגדיר ערכי משך של שניות, דקות, שעות וימים, בהתאמה. משך הזמן הקצוב לתפוגה צריך להיות בין 10 דקות (10m) ל-24 שעות (24h או 1d).
gcloud dataproc workflow-templates create template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d"") \ ... other args ...
API
כדי להגדיר זמן קצוב לתהליך עבודה, צריך למלא את השדה WorkflowTemplate
dagTimeout
כחלק מבקשת workflowTemplates.create.
המסוף
בשלב הזה, אי אפשר ליצור תבנית של תהליך עבודה במסוף Google Cloud .
עדכון של הגדרת הזמן הקצוב לתבנית של תהליך עבודה
אפשר לעדכן תבנית קיימת של תהליך עבודה כדי לשנות, להוסיף או להסיר זמן קצוב לתהליך העבודה.
gcloud
הוספה או שינוי של זמן קצוב לתהליך עבודה
כדי להוסיף או לשנות את הזמן הקצוב לתפוגה של תהליך עבודה בתבנית קיימת, משתמשים בדגל --dag-timeout עם הפקודה gcloud dataproc workflow-templates set-dag-timeout. אפשר להשתמש בסיומות s, m, h ו-d כדי להגדיר ערכי משך של שניות, דקות, שעות וימים, בהתאמה. משך הזמן הקצוב לתפוגה צריך להיות בין 10 דקות (10m) ל-24 שעות (24h).
gcloud dataproc workflow-templates set-dag-timeout template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d")
הסרת פסק זמן של תהליך עבודה
כדי להסיר פסק זמן של תהליך עבודה מתבנית קיימת, משתמשים בפקודה gcloud dataproc workflow-templates remove-dag-timeout.
gcloud dataproc workflow-templates remove-dag-timeout template-id (such as "my-workflow") \ --region=region
API
הוספה או שינוי של זמן קצוב לתהליך עבודה
כדי להוסיף או לשנות את הזמן הקצוב לתפוגה של תהליך עבודה בתבנית קיימת, צריך לעדכן את תבנית תהליך העבודה על ידי מילוי השדה dagTimeout בתבנית עם הערך החדש או המעודכן של הזמן הקצוב לתפוגה.
הסרת פסק זמן של תהליך עבודה
כדי להסיר פסק זמן של תהליך עבודה מתבנית קיימת,
מעדכנים את תבנית תהליך העבודה
על ידי הסרת השדה dagTimeout של התבנית.
המסוף
בשלב הזה, Google Cloud המסוף לא תומך בעדכון של תבנית תהליך עבודה.