אחרי שיוצרים אשכול של Managed Service for Apache Spark, אפשר לשנות את גודל האשכול על ידי הגדלה או הקטנה של מספר צמתי העובדים הראשיים או המשניים (שינוי גודל אופקי) באשכול. אפשר לשנות את גודל האשכול של Managed Service for Apache Spark בכל שלב, גם כשהעבודות פועלות באשכול. אי אפשר לשנות את סוג המכונה של אשכול קיים (שינוי גודל אנכי). כדי לבצע שינוי גודל אנכי, יוצרים אשכול באמצעות סוג מכונה נתמך, ואז מעבירים את העבודות לאשכול החדש.
אפשר לשנות את גודל האשכול של Managed Service for Apache Spark כדי:
- כדי להגדיל את מספר העובדים כדי להריץ משימה מהר יותר.
- כדי להקטין את מספר העובדים ולחסוך כסף (אפשר להשתמש בהוצאה משימוש בצורה מסודרת כדי להקטין את גודל האשכול בלי לאבד עבודה בתהליך).
- כדי להגדיל את מספר הצמתים ולהרחיב את נפח האחסון הזמין של Hadoop Distributed File System (HDFS).
אפשר לשנות את גודל האשכול כמה פעמים, ולכן יכול להיות שתרצו להגדיל או להקטין את גודל האשכול בפעם אחת, ואז להקטין או להגדיל את הגודל מאוחר יותר.
המלצות:
הסרת עובדים בזהירות: אם מסירים עובדים מהאשכול, צריך לוודא שהגודל החדש של האשכול מספיק כדי לטפל בעומס העבודה. אם לא, יכול להיות שיעבור הרבה זמן עד שהעבודות יושלמו או שהן יפסיקו להגיב.
לא מומלץ להגדיל את מספר העובדים הראשיים: עובדים ראשיים מריצים את HDFS DataNodes, ועובדים משניים מיועדים רק לחישובים. להרחבת מספר העובדים הראשיים יש סיכונים. לדוגמה, יכולים להיות כמה תנאי מירוץ ב-NameNodes של HDFS במהלך פעולות שינוי גודל, שיכולים לגרום להשחתה של HDFS ולביטול הפעלה שנתקע ללא הגבלת זמן. מידע נוסף זמין במאמר בנושא הימנעות מהרחבת העבודה של עובדים ראשיים.
שימוש בהתאמה
יש שלוש דרכים להרחבת אשכול Managed Service for Apache Spark:
- משתמשים בכלי שורת הפקודה
gcloudב-CLI של gcloud. - עורכים את הגדרות האשכול במסוףGoogle Cloud .
- משתמשים ב-REST API.
עובדים חדשים שנוספים לאשכול ישתמשו באותו סוג מכונה כמו העובדים הקיימים. לדוגמה, אם יוצרים אשכול עם עובדים שמשתמשים בסוג המכונה n1-standard-8, גם עובדים חדשים ישתמשו בסוג המכונה n1-standard-8.
אתם יכולים לשנות את מספר העובדים הראשיים או את מספר העובדים המשניים (שניתנים להפסקת פעולה), או את שניהם. לדוגמה, אם משנים רק את מספר העובדים שניתן להפסיק את הפעולה שלהם, מספר העובדים הראשיים נשאר ללא שינוי.
gcloud
כדי לשנות את גודל האשכול באמצעותgcloud dataproc clusters update, מריצים את הפקודה הבאה:
gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workers
gcloud dataproc clusters update dataproc-1 \
--region=region \
--num-workers=5
...
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
...
masterDiskConfiguration:
bootDiskSizeGb: 500
masterName: dataproc-1-m
numWorkers: 5
...
workers:
- my-test-cluster-w-0
- my-test-cluster-w-1
- my-test-cluster-w-2
- my-test-cluster-w-3
- my-test-cluster-w-4
...
API בארכיטקטורת REST
מידע נוסף זמין במאמר בנושא clusters.patch.
דוגמה
PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances
{
"config": {
"workerConfig": {
"numInstances": 4
},
"secondaryWorkerConfig": {
"numInstances": 2
}
},
"labels": null
}
המסוף
אחרי שיוצרים אשכול, אפשר לשנות את הגודל שלו. לשם כך, פותחים את הדף פרטי האשכול של האשכול מתוך המסוף Google Cloud , לוחצים על אשכולות ואז על הלחצן עריכה בכרטיסייה הגדרה.
מזינים ערך חדש למספר צמתי העובדים או צמתי העובדים שניתנים להפסקת פעולה (בצילום המסך הבא, הערכים עודכנו ל-5 ול-2 בהתאמה).
לוחצים על שמירה כדי לעדכן את האשכול.
איך Managed Service for Apache Spark בוחר צמתים באשכול להסרה
באשכולות שנוצרו עם גרסאות תמונה 1.5.83+, 2.0.57+ ו-2.1.5+, כשמצמצמים את גודל האשכול, שירות Managed Service for Apache Spark מנסה למזער את ההשפעה של הסרת צמתים על אפליקציות YARN שפועלות. לשם כך, הוא מסיר קודם צמתים לא פעילים, לא תקינים וסרק, ואז מסיר צמתים עם הכי פחות מאסטרים של אפליקציות YARN וקונטיינרים שפועלים.
הוצאה משימוש בצורה מבוקרת
כשמצמצמים את גודל האשכול, יכול להיות שהעבודה בתהליך תיפסק לפני שהיא תושלם. אם אתם משתמשים ב-Managed Service for Apache Spark גרסה 1.2 ואילך, אתם יכולים להשתמש ב-Graceful Decommissioning, שכולל את Graceful Decommission of YARN Nodes כדי לסיים עבודה בתהליך בעובד לפני שהוא מוסר מהאשכול של Cloud Managed Service for Apache Spark.
צמצום הדרגתי של כמות השרתים ועובדים משניים
קבוצת העובדים (המשנית) שניתן להפסיק את פעולתה ממשיכה להקצות או למחוק עובדים כדי להגיע לגודל הצפוי שלה, גם אחרי שפעולת שינוי הגודל של האשכול מסומנת כהשלמה. אם מנסים להוציא משימוש בצורה מסודרת עובד משני ומקבלים הודעת שגיאה שדומה להודעה הבאה:
"Secondary worker group cannot be modified outside of Managed Service for Apache Spark. אם יצרתם או עדכנתם לאחרונה את האשכול הזה, צריך להמתין כמה דקות לפני שמוציאים אותו משימוש בצורה מסודרת, כדי לאפשר לכל המופעים המשניים להצטרף לאשכול או לעזוב אותו.
הגודל הצפוי של קבוצת ה-worker המשנית: x, הגודל בפועל: y",
ממתינים כמה דקות ואז חוזרים על בקשת צמצום הדרגתי של כמות השרתים.
שימוש בצמצום הדרגתי של כמות השרתים
התכונה 'הוצאה משימוש בצורה מסודרת' ב-Managed Service for Apache Spark כוללת את התכונה Graceful Decommission of YARN Nodes (הוצאה משימוש בצורה מסודרת של צמתי YARN) כדי לסיים את העבודה בתהליך בעובד לפני שהוא מוסר מאשכול Managed Service for Apache Spark ב-Cloud. כברירת מחדל, צמצום הדרגתי של כמות השרתים מושבת. אפשר להפעיל את התכונה על ידי הגדרת ערך של זמן קצוב לתפוגה כשמעדכנים את האשכול כדי להסיר ממנו worker אחד או יותר.
gcloud
כדי לעדכן אשכול ולהסיר ממנו עובד אחד או יותר, משתמשים בפקודה gcloud dataproc clusters update עם הדגל--graceful-decommission-timeout. ערכי הזמן הקצוב לתפוגה (מחרוזת) יכולים להיות הערך '0s' (ברירת המחדל; הוצאה משימוש בכוח ולא בצורה הדרגתית) או משך חיובי ביחס לזמן הנוכחי (לדוגמה, '3s').
משך הזמן המקסימלי הוא יום אחד.
gcloud dataproc clusters update cluster-name \ --region=region \ --graceful-decommission-timeout="timeout-value" \ [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \ ... other args ...
API בארכיטקטורת REST
מידע נוסף זמין במאמר בנושא clusters.patch.gracefulDecommissionTimeout. ערכי הזמן הקצוב לתפוגה (מחרוזת) יכולים להיות הערך '0' (ברירת המחדל; השבתה כפויה ולא הדרגתית) או משך זמן בשניות (לדוגמה, '3s'). המשך המקסימלי הוא יום אחד.המסוף
אחרי שיוצרים אשכול, אפשר לבחור בצמצום הדרגתי של כמות השרתים של האשכול. כדי לעשות את זה, פותחים את הדף פרטי האשכול של האשכול מתוך הדף אשכולות בGoogle Cloud מסוף, ואז לוחצים על הלחצן עריכה בכרטיסייה הגדרה.
בקטע צמצום הדרגתי של כמות השרתים, בוחרים באפשרות שימוש בצמצום הדרגתי של כמות השרתים ואז בוחרים ערך של זמן קצוב לתפוגה.
לוחצים על שמירה כדי לעדכן את האשכול.
ביטול פעולת צמצום הדרגתי של כמות השרתים
באשכולות של Managed Service for Apache Spark שנוצרו עם גרסאות תמונה 2.0.57+ או 2.1.5+, אפשר להריץ את הפקודה gcloud dataproc operations cancel או להנפיק בקשת API של Managed Service for Apache Spark operations.cancel כדי לבטל פעולת צמצום הדרגתי של כמות השרתים.
כשמבטלים פעולה של צמצום הדרגתי של כמות השרתים:
עובדים במצב
DECOMMISSIONINGמופעלים מחדש והופכים ל-ACTIVEבסיום הביטול של הפעולה.אם פעולת ההקטנה כוללת עדכוני תוויות, יכול להיות שהעדכונים לא יחולו.
כדי לבדוק את הסטטוס של בקשת הביטול, אפשר להריץ את הפקודה gcloud dataproc operations describe או להגיש בקשה ל-Managed Service for Apache Spark API operations.get. אם פעולת הביטול מצליחה, הסטטוס של הפעולה הפנימית מסומן כ-CANCELLED.