במאמר הזה מוסבר איך ליצור אשכול Dataproc ללא קנה מידה.
אשכולות Dataproc zero-scale הם דרך חסכונית להשתמש באשכולות Dataproc. בניגוד לאשכולות Dataproc רגילים שנדרשים בהם לפחות שני עובדים ראשיים, באשכולות Dataproc עם שינוי גודל לאפס נעשה שימוש רק בעובדים משניים שאפשר להקטין את הגודל שלהם לאפס.
אשכולות Dataproc zero-scale הם אידיאליים לשימוש כאשכולות שפועלים לאורך זמן ומדי פעם לא פעילים, כמו אשכול שמארח מחברת Jupiter. הם מספקים ניצול משאבים משופר באמצעות שימוש במדיניות של התאמה אוטומטית לעומס ללא שינוי גודל.
מאפיינים ומגבלות
אשכול Dataproc zero-scale דומה לאשכול רגיל, אבל יש לו מאפיינים ומגבלות ייחודיים:
- נדרשת גרסת אימג'
2.2.53ואילך. - תמיכה רק בעובדים משניים, לא בעובדים ראשיים.
כולל שירותים כמו YARN, אבל לא תומך במערכת הקבצים HDFS.
- כדי להשתמש ב-Cloud Storage כמערכת הקבצים שמוגדרת כברירת מחדל, צריך להגדיר את מאפיין האשכול
core:fs.defaultFSלמיקום של קטגוריה של Cloud Storage (gs://BUCKET_NAME). - אם משביתים רכיב במהלך יצירת האשכול, צריך להשבית גם את HDFS.
- כדי להשתמש ב-Cloud Storage כמערכת הקבצים שמוגדרת כברירת מחדל, צריך להגדיר את מאפיין האשכול
אי אפשר להמיר אותו לאשכול רגיל או מאשכול רגיל.
נדרשת מדיניות של שינוי גודל אוטומטי עבור סוגי אשכולות
ZERO_SCALE.צריך לבחור באפשרות מכונות וירטואליות גמישות בתור סוג המכונה.
אין תמיכה ברכיב Oozie.
אי אפשר ליצור אותם דרך מסוף Google Cloud .
אופציונלי: הגדרת מדיניות של התאמה אוטומטית לעומס
אתם יכולים להגדיר מדיניות של התאמה אוטומטית לעומס (automatic scaling) כדי להגדיר שינוי גודל משני של עבודה עבור אשכול עם גודל אפס. כשעושים את זה, חשוב לשים לב לדברים הבאים:
- מגדירים את סוג האשכול ל-
ZERO_SCALE. - הגדרת מדיניות של התאמה אוטומטית לעומס (autoscaling) רק להגדרת העובד המשני.
מידע נוסף זמין במאמר יצירת מדיניות של שינוי גודל אוטומטי.
יצירת אשכול Dataproc ללא קנה מידה
יוצרים אשכול עם אפס צמתים באמצעות ה-CLI של gcloud או Dataproc API.
gcloud
מריצים את הפקודה gcloud dataproc clusters create באופן מקומי בחלון טרמינל או ב-Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--cluster-type=zero-scale \
--autoscaling-policy=AUTOSCALING_POLICY \
--properties=core:fs.defaultFS=gs://BUCKET_NAME \
--secondary-worker-machine-types="type=MACHINE_TYPE1[,type=MACHINE_TYPE2...][,rank=RANK]"
...other args
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER_NAME: שם האשכול ב-Dataproc zero-scale.
- REGION: אזור זמין ב-Compute Engine.
- AUTOSCALING_POLICY: המזהה או ה-URI של המשאב של מדיניות שינוי הגודל האוטומטי.
- BUCKET_NAME: שם קטגוריית Cloud Storage.
- MACHINE_TYPE: סוג מכונה ספציפי ב-Compute Engine, כמו
n1-standard-4אוe2-standard-8. - RANK: מגדיר את העדיפות של רשימה של סוגי מכונות.
REST
יוצרים אשכול עם אפס צמתים באמצעות בקשת cluster.create של Dataproc API בארכיטקטורת REST:
- מגדירים את
ClusterConfig.ClusterTypeעבורsecondaryWorkerConfigלערךZERO_SCALE. - מגדירים את
AutoscalingConfig.policyUriעם מזהה מדיניות שינוי הגודל האוטומטיZERO_SCALE. - מוסיפים את
core:fs.defaultFS:gs://BUCKET_NAMESoftwareConfig.property. מחליפים את BUCKET_NAME בשם של קטגוריית Cloud Storage.