במאמר הזה מוסבר איך ליצור אשכול של Managed Service for Apache Spark במצב זמינות גבוהה (HO). מצב High Obtainability משפר את הסיכוי להקצות בהצלחה מכונות וירטואליות של אשכולות בתקופות של ביקוש גבוה או אילוצי משאבים, בכך שהוא מאפשר ל-Managed Service for Apache Spark לבחור מתוך מגוון סוגי מכונות תואמים במקום לדרוש סוג מכונה קבוע כשיוצרים אשכול.
כדי למנוע כשלים ביצירה ובהתאמה לעומס של אשכולות בגלל חוסר זמינות של מכונות וירטואליות, אתם יכולים להשתמש במצב High Obtainability כדי ליצור אשכולות עם דרישות מחשוב למטרות כלליות.
איך פועל המצב "סבירות גבוהה להשגה"
בבקשות רגילות ליצירת אשכולות, אתם מציינים סוגי מכונות ספציפיים (כמו n2-standard-4) לצומתי האשכול. אם סוג המכונה הספציפי לא זמין באזור, בקשת היצירה תיכשל.
במצב High Obtainability, אתם מציינים דרישות גמישות למשאבים של צומתי מאסטר, צומתי עובדים ראשיים וצומתי עובדים משניים, במקום סוגי מכונות קבועים:
- מספר ליבות של vCPU: אתם מבקשים מספר יעד של מעבדי vCPU לכל מכונה וירטואלית (2, 4, 8, 16 או 32 ליבות).
סוג החומרה: אתם מציינים את פרופיל הביצועים והזיכרון:
-
STANDARD: הגדרה מאוזנת עם זיכרון של כ-4GB לכל vCPU ורמות אחסון מתמיד סטנדרטיות. סוגי המכונות המועמדים הנוכחיים כוללים אתn4-standard,n4d-standard,n2-standardו-n2d-standard(העדפה בדירוג 0), ואתc4-standardו-c4d-standard(העדפה בדירוג 1). -
PERFORMANCE: הגדרה עם ביצועים גבוהים, עם זיכרון של כ-8GB לכל vCPU והגדרות דיסק ברמה גבוהה יותר (IOPS וקצב העברת נתונים גבוהים יותר). סוגי המכונות המועמדים הנוכחיים כוללים אתn4-highmem,n4d-highmem,n2-highmemו-n2d-highmem(העדפה בדירוג 0), ואתc4-highmemו-c4d-highmem(העדפה בדירוג 1).
-
מספר המכונות: אתם מציינים את מספר המכונות בכל קבוצה:
- מאסטר: חייב להיות מופע אחד.
- Primary workers: מספר שלם חיובי.
- עובדים משניים: מספר שלם חיובי.
Boot disk size: גודל דיסק האתחול (לדוגמה, 100GB).
Managed Service for Apache Spark משתמש באופן אוטומטי במיקום Auto Zone כדי להעריך אזורים באזור האשכול ולבחור סוגי מכונות מועמדים בתוך מחלקת החומרה המבוקשת שיש להם קיבולת זמינה.
דרישות ומגבלות
אלה הדרישות והמגבלות של מצב "סבירות גבוהה להשגה":
- מכסות משאבים: לפרויקט צריכות להיות מספיק מכסות משאבים של Compute Engine באזור של האשכול, לכל משפחות המכונות המועמדות בסוג החומרה שבחרתם (
N4,N4D,N2,N2D,C4ו-C4D). מכיוון שסוגי המכונות המועמדות הבסיסיות נשלטים על ידי Google ויכולים להשתנות בכל שלב, אל תסתמכו על סוגי מכונות ספציפיים. - מפרט אזור: אי אפשר לציין במפורש את
--zone(או אתzoneUri). Managed Service for Apache Spark בוחר באופן אוטומטי אזור זמין באזור באמצעות מיקום Auto Zone. - הדדיות בלעדית עם הגדרות קבועות של מכונות וצמתים:
- כשמגדירים קבוצות של צומתי מאסטר, צומתי primary worker או צומתי עובדים משניים עם הגדרות גמישות (
--master-flexible-config,--worker-flexible-configאו--secondary-worker-flexible-config), אי אפשר לציין את הדגלים של מכונה לשימוש סטנדרטי (standard), בחירת המכונה, מספר המכונות, הדיסק או המאיץ לקבוצות הצמתים האלה:- Master: אי אפשר לשלב עם
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-acceleratorאו--master-min-cpu-platform. - <!--Primary workers: Cannot be combined with
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-accelerator, or--worker-min-cpu-platform.--> Primary workers: אי אפשר לשלב עם--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-acceleratorאו--worker-min-cpu-platform. - עובדים משניים: אי אפשר לשלב עם
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssdsאו--secondary-worker-accelerator.
- Master: אי אפשר לשלב עם
- באשכול עם כמה צמתים, אם מצב הזמינות הגבוהה מופעל בקבוצת צומתי המאסטר, גם קבוצת צומתי העובדים הראשית צריכה להשתמש בהגדרות גמישות (
--worker-flexible-config). - אם משתמשים ב-workers משניים באשכול High Obtainability, צריך להשתמש ב-
--secondary-worker-flexible-configולא בדגלים רגילים של workers משניים.
- כשמגדירים קבוצות של צומתי מאסטר, צומתי primary worker או צומתי עובדים משניים עם הגדרות גמישות (
- אשכולות עם צומת יחיד: באשכול עם צומת יחיד (
--single-nodeאו--cluster-type=single-node), אפשר לציין רק את--master-flexible-config. אי אפשר להשתמש בדגלים של הגדרות גמישות של עובדים ראשיים ומשניים. - עדכוני אשכולות: אפשר לעדכן את מספר המכונות (
num-instances) של ה-workers הראשיים והמשניים באמצעותgcloud dataproc clusters update. מספר הליבות, סוג החומרה וגודל דיסק האתחול הם מפרטים שנקבעים בזמן היצירה, ואי אפשר לשנות אותם אחרי היצירה. - אשכולות בזמינות גבוהה: אשכולות בזמינות גבוהה (HA) (אשכולות עם שלושה צומתי מאסטר) לא נתמכים במצב High Obtainability. מספר המכונות הראשיות חייב להיות 1.
יצירת אשכול של "סיכוי גבוה להשגה"
אפשר ליצור אשכול במצב זמינות גבוהה באמצעות Google Cloud CLI או Dataproc API.
gcloud
כדי ליצור אשכול במצב High Obtainability, מריצים את הפקודה gcloud dataproc clusters create עם הדגלים --master-flexible-config ו---worker-flexible-config.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. REGION: האזור ב-Compute Engine של האשכול, למשלus-central1. אל תציינו--zone.-
CORES: מספר המעבדים הווירטואליים לכל מכונה וירטואלית. הערך חייב להיות חזקה של 2 (2,4,8,16או32). -
HARDWARE_CLASS: המחלקה של פרופיל החומרה,STANDARDאוPERFORMANCE. -
NUM_WORKERS: מספר צומתי ה-worker הראשיים באשכול. -
BOOT_DISK_SIZE: גודל דיסק האתחול, למשל100GB.
הוספת עובדים משניים
כדי להוסיף צומתי עובדים משניים במצב High Obtainability, צריך לכלול את הדגל --secondary-worker-flexible-config:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
יצירת אשכול עם צומת יחיד
כדי ליצור אשכול זמינות גבוהה עם צומת יחיד, מציינים את --single-node (או --cluster-type=single-node) עם --master-flexible-config ומשמיטים את דגלי ההגדרה הגמישה של ה-worker:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
עדכון הקיבולת של ה-worker באשכול
כדי לשנות את מספר ה-workers הראשיים או המשניים באשכול קיים עם זמינות גבוהה, משתמשים בפקודה gcloud dataproc clusters update:
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
כדי ליצור אשכול בזמינות גבוהה באמצעות API בארכיטקטורת REST, שולחים בקשת clusters.create. באובייקט ClusterConfig:
- כדי להפעיל את Auto Zone, משאירים את
gceClusterConfig.zoneUriריק (או משמיטים אותו). - מציינים את האובייקטים
masterFlexibleConfigו-workerFlexibleConfig.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
תוכן בקשת JSON:
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . REGION: האזור של Compute Engine שבו ייווצר האשכול, למשלus-central1.-
CLUSTER_NAME: שם האשכול.
אופציונלי: כדי להוסיף וורקרים משניים, צריך לכלול את האובייקט secondaryWorkerFlexibleConfig עם הערכים הרצויים של numInstances, coreCount, hardwareClass ו-bootDiskSizeGb.
המאמרים הבאים
- מידע נוסף על מיקום של Auto Zone
- מידע ולמידה על מתן עדיפות לסוגי מכונות וירטואליות באמצעות מכונות וירטואליות גמישות
- איך משנים את קנה המידה של אשכולות Managed Service for Apache Spark