יצירת אשכול Managed Service for Apache Spark zero-scale

במאמר הזה מוסבר איך ליצור אשכול Managed Service for Apache Spark עם אפס משאבים.

אשכולות ללא התאמה לעומס (zero-scale) ב-Managed Service for Apache Spark מאפשרים להשתמש באשכולות של Managed Service for Apache Spark בצורה חסכונית. בניגוד לאשכולות רגילים של Managed Service for Apache Spark, שדורשים לפחות שני וורקרים ראשיים, אשכולות עם התאמה לאפס של Managed Service for Apache Spark משתמשים רק בוורקרים משניים שאפשר לצמצם לאפס.

אשכולות עם אפס משאבים ב-Managed Service for Apache Spark מתאימים במיוחד לשימוש כאשכולות שפועלים לאורך זמן, עם תקופות של חוסר פעילות, כמו אשכול שמארח מסמך Jupyter Notebook. הם מאפשרים ניצול משופר של המשאבים באמצעות מדיניות התאמה אוטומטית לעומס (automatic scaling) עם אפס משאבים.

מאפיינים ומגבלות

אשכול עם אפס משאבים ב-Managed Service for Apache Spark דומה לאשכול רגיל, אבל יש לו את המאפיינים והמגבלות הייחודיים הבאים:

  • נדרשת גרסת אימג' 2.2.53 ואילך.
  • תמיכה רק ב-secondary workers, לא ב-primary workers.
  • כולל שירותים כמו YARN, אבל לא תומך במערכת הקבצים HDFS.

    • כדי להשתמש ב-Cloud Storage כמערכת הקבצים שמוגדרת כברירת מחדל, מגדירים את מאפיין האשכול core:fs.defaultFS למיקום של קטגוריה של Cloud Storage‏ (gs://BUCKET_NAME).
    • אם משביתים רכיב במהלך יצירת האשכול, צריך להשבית גם את HDFS.
  • אי אפשר להמיר אותו לאשכול רגיל או מאשכול רגיל.

  • נדרשת מדיניות התאמה לעומס (autoscaling) לסוגי אשכולות של ZERO_SCALE.

  • צריך לבחור באפשרות מכונות וירטואליות גמישות כסוג המכונה.

  • לא תומך ברכיב Oozie.

  • אי אפשר ליצור אותם ממסוף Google Cloud .

אופציונלי: הגדרת מדיניות התאמה לעומס (autoscaling)

אפשר להגדיר מדיניות התאמה אוטומטית לעומס כדי לקבוע את קנה המידה של ה-worker המשני באשכול עם קנה מידה אפס. כשעושים את זה, חשוב לשים לב לנקודות הבאות:

  • מגדירים את סוג האשכול ל-ZERO_SCALE.
  • מגדירים מדיניות התאמה לעומס (autoscaling) רק להגדרת ה-worker המשני.

מידע נוסף זמין במאמר יצירת מדיניות התאמה לעומס (scaling).

איך יוצרים אשכול Managed Service for Apache Spark עם אפס משאבים

יוצרים אשכול עם אפס משאבים באמצעות ה-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: השם של אשכול Managed Service for Apache Spark עם התאמה לאפס.
  • REGION: אזור זמין ב-Compute Engine.
  • ‫AUTOSCALING_POLICY: המזהה או ה-URI של המשאב של מדיניות ההתאמה האוטומטית לעומס.
  • ‫BUCKET_NAME: שם הקטגוריה ב-Cloud Storage.
  • ‫MACHINE_TYPE: סוג מכונה ספציפי של Compute Engine, כמו n1-standard-4,‏ e2-standard-8.
  • ‫RANK: מגדיר את העדיפות של רשימת סוגי המכונות.

REST

כדי ליצור אשכול עם אפס משאבים, שולחים בקשת cluster.create באמצעות API בארכיטקטורת REST של Managed Service for Apache Spark:

  • מגדירים את ClusterConfig.ClusterType לערך ZERO_SCALE עבור secondaryWorkerConfig.
  • מגדירים את AutoscalingConfig.policyUri עם מזהה מדיניות ההתאמה האוטומטית לעומס (autoscaling) של ZERO_SCALE.
  • מוסיפים את core:fs.defaultFS:gs://BUCKET_NAME SoftwareConfig.property. מחליפים את BUCKET_NAME בשם הקטגוריה שלכם ב-Cloud Storage.

המאמרים הבאים