מחיקה מתוזמנת של אשכול

כדי להימנע מCloud de Confiance חיובים על אשכול לא פעיל, כדאי להשתמש בתכונה 'מחיקה מתוזמנת של אשכול' ב-Managed Service for Apache Spark כשיוצרים אשכול. התכונה הזו מספקת אפשרויות למחיקת אשכול כשמתרחשים האירועים הבאים:

פעולות שמשביתות את המחיקה המתוזמנת

בזמן שקלאסטר פועל, הפעולות הבאות משביתות את המחיקה המתוזמנת עד שהפעולה שגרמה להשבתה תבוטל:

חישוב זמן ההמתנה של אשכול

אתם יכולים להשתמש במחיקה מתוזמנת כדי למחוק אשכול אחרי זמן השבתה מוגדר של האשכול. החישוב של זמן בלי פעילות מתבצע אחרי יצירת האשכול והשלמת ההקצאה של האשכול. חישוב הזמן שהמערכת לא פעילה מתחיל כשאין משימות פעילות באשכול.

dataproc:dataproc.cluster-ttl.consider-yarn-activity מאפיין האשכול משפיע על חישוב זמן ההמתנה של האשכול באופן הבא:

  • הנכס הזה מופעל (מוגדר ל-true) כברירת מחדל.
  • כשהנכס הזה מופעל, גם YARN וגם פעילות Dataproc Jobs API צריכים להיות במצב סרק כדי להתחיל ולהמשיך להגדיל את החישוב של זמן הסרק של האשכול.
    • הפעילות ב-YARN כוללת אפליקציות בהמתנה ואפליקציות שפועלות ב-YARN.
    • הפעילות ב-Dataproc Jobs API כוללת משימות בהמתנה ומשימות שפועלות שנשלחו אל Dataproc Jobs API.
  • כשהמאפיין הזה מוגדר לערך false, מתחיל החישוב של זמן ההמתנה של האשכול, והוא נמשך רק כשאין פעילות ב-Dataproc Jobs API.

המאפיין dataproc:dataproc.cluster-ttl.consider-yarn-activity חל על אשכולות שנוצרו עם גרסאות תמונה שפורסמו בתאריך 1.4.64 ואחריו, 1.5.39,‏ 2.0.13 וגרסאות תמונה מאוחרות יותר. באשכולות שנוצרו עם גרסאות קודמות של תמונות, רק הפעילות של Dataproc Jobs API נלקחת בחשבון בחישוב זמן ההמתנה של האשכול.

שימוש במחיקה מתוזמנת של אשכול

אפשר להגדיר ערכים של מחיקה מתוזמנת כשיוצרים אשכול באמצעות Google Cloud CLI,‏ Dataproc API או מסוף Cloud de Confiance . אחרי שיוצרים את האשכול, אפשר לעדכן אותו כדי לשנות או למחוק ערכים של מחיקה מתוזמנת שהוגדרו קודם באשכול.

מסוףCloud de Confiance

  1. פותחים את הדף Create cluster.
  2. בקטע Define cost control settings (הגדרת אמצעים לבקרת עלויות), בוחרים באפשרות Set an optional retention policy to control costs (הגדרת מדיניות שמירת נתונים אופציונלית לבקרת עלויות), ואז בוחרים הגדרות של מחיקה מתוזמנת (או עצירה מתוזמנת).

‫CLI של gcloud

כדי ליצור או לעדכן ערכים של מחיקה מתוזמנת באשכול, מעבירים את הדגלים והערכים שמפורטים בטבלה הבאה לפקודות gcloud dataproc clusters create או gcloud dataproc clusters update.

דגל של ה-CLI של gcloud תיאור רמת הפירוט של הערכים ערך מינימלי ערך מקסימלי
--delete-max-idle1 האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. משך הזמן שחל מהרגע שבו האשכול הופך ללא פעיל אחרי שהוא נוצר או עודכן ונמצא במצב מוכן לשימוש, ועד הרגע שבו האשכול מתחיל להימחק. מציינים את משך הזמן בפורמט IntegerUnit, כאשר היחידה יכולה להיות s, m, h, d (שניות, דקות, שעות, ימים). דוגמה: ‎30m: 30 דקות מהרגע שבו האשכול הופך למצב סרק. שנייה אחת 5 דקות 14 ימים
--no-delete-max-idle ההגדרה הזו רלוונטית רק לפקודת עדכון האשכול. ביטול מחיקת האשכול לפי הגדרת הדגל הקודמת delete-max-idle. לא רלוונטי לא רלוונטי לא רלוונטי
--delete-expiration-time2 האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. השעה שבה מתחילים למחוק את האשכול בפורמט ISO 8601 של תאריך ושעה. כדי ליצור את התאריך והשעה בפורמט הנכון, אפשר להשתמש במחולל חותמות הזמן. לדוגמה, הערך 2017-08-22T13:31:48-08:00 מציין שעת תפוגה של 13:21:48 באזור הזמן UTC -8:00.שנייה אחת ‫10 דקות מהשעה הנוכחית ‫14 ימים מהשעה הנוכחית
--delete-max-age2 האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. משך הזמן מרגע שליחת הבקשה ליצירת האשכול ועד לרגע שבו מתחילה המחיקה של האשכול. מציינים את משך הזמן בפורמט IntegerUnit, כאשר היחידה יכולה להיות s, m, h, d (שניות, דקות, שעות, ימים). דוגמאות: ‎"30m": 30 minutes from now; ‎"1d": 1 day from now. שנייה אחת 10 דקות 14 ימים
--no-delete-max-age ההגדרה הזו רלוונטית רק לפקודת עדכון האשכול. מבטל את המחיקה האוטומטית של האשכול לפי ההגדרה הקודמת של הדגל delete-max-age או delete-expiration-time. לא רלוונטי לא רלוונטי לא רלוונטי
הערות:
  1. אפשר להעביר את האפשרות delete-max-idle עם האפשרות delete-expiration-time או delete-max-age בבקשה ליצירה או לעדכון של האשכול. התנאי הראשון שיהפוך ל-true יגרום למחיקת האשכול.
  2. אפשר להעביר את האפשרות delete-expiration-time או את האפשרות delete-max-age לפקודה ליצירה או לעדכון של האשכול, אבל לא את שתיהן.

דוגמה ליצירת אשכול:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --delete-expiration-time=TIME \
    ... other flags ...

דוגמה לעדכון אשכול:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --no-delete-max-age \
    ... other flags

‫API בארכיטקטורת REST

כדי ליצור או לעדכן ערכים של מחיקה מתוזמנת באשכול, צריך להגדיר את השדות והערכים של Dataproc API ClusterLifecycleConfig שמופיעים בטבלה הבאה כחלק מבקשת API של cluster.create או cluster.patch של שירות מנוהל ל-Apache Spark cluster.

שדה API תיאור רמת הפירוט של הערכים ערך מינימלי ערך מקסימלי
idleDeleteTtl1 האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. משך הזמן שחל מהרגע שבו האשכול הופך ללא פעיל אחרי שהוא נוצר או עודכן ונמצא במצב מוכן לשימוש, ועד הרגע שבו האשכול מתחיל להימחק. כשמעדכנים אשכול עם ערך חדש, הערך החדש צריך להיות גדול מהערך שהוגדר קודם. מציינים משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, ומסיימים ב-s. דוגמה: ‎3.5s. כדי לבטל ערך idleDeleteTtl שהוגדר בעבר, שולחים משך זמן ריק. שנייה אחת 5 דקות 14 ימים
autoDeleteTime2 האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. השעה שבה מתחילים למחוק את האשכול. כשמעדכנים אשכול עם שעה חדשה, השעה החדשה צריכה להיות מאוחרת יותר מהשעה שהוגדרה קודם. אם מעדכנים את הערך של autoDeleteTime לערך ריק, המחיקה האוטומטית הקיימת מבוטלת.
צריך לציין חותמת זמן בפורמט RFC 3339 UTC 'זולו', עם דיוק של ננו-שניות. דוגמה: ‎"2014-10-02T15:01:23.045123456Z".
שנייה אחת ‫10 דקות מהשעה הנוכחית ‫14 ימים מהשעה הנוכחית
autoDeleteTtl2 משך הזמן מרגע שליחת הבקשה ליצירה או לעדכון של האשכול ועד לרגע שבו האשכול מתחיל להימחק. כשמעדכנים אשכול, מועד המחיקה המתוזמן החדש (המועד של בקשת העדכון בתוספת המשך החדש) צריך להיות מאוחר יותר ממועד המחיקה של האשכול שהוגדר קודם. כדי לבטל ערך autoDeleteTtl שהוגדר בעבר, שולחים ערך ריק. צריך לציין משך זמן בשניות עם עד תשע ספרות אחרי הנקודה, ולסיים ב-s. דוגמה: ‎3.5s. שנייה אחת 10 דקות 14 ימים
הערות:
  1. אפשר להגדיר או לעדכן את idleDeleteTtl ואת autoDeleteTime או את autoDeleteTtl בבקשה ליצירה או לעדכון של אשכול. התנאי הראשון שיהפוך ל-true יופעל כדי למחוק את האשכול.
  2. אפשר להגדיר או לעדכן את autoDeleteTime או את autoDeleteTtl בבקשה, אבל לא את שניהם.

צפייה בהגדרות של אשכול מחיקה מתוזמנת

מסוףCloud de Confiance

  • כדי לראות את ההגדרות של מחיקה מתוזמנת של אשכול, בוחרים את שם האשכול מתוך הדף Clusters של Managed Service for Apache Spark במסוף Cloud de Confiance .
  • בדף הפרטים של האשכולות, בוחרים בכרטיסייה Configuration. כדי לראות את ההגדרות של מחיקה מתוזמנת, עוברים לרשימת ההגדרות של האשכול.

‫CLI של gcloud

אפשר להשתמש בפקודה gcloud dataproc clusters list כדי לוודא שהאפשרות 'מחיקה מתוזמנת' מופעלת באשכול.

 gcloud dataproc clusters list \
     --region=REGION
פלט לדוגמה:
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

אפשר להשתמש בפקודה gcloud dataproc clusters describe כדי לבדוק את הגדרות המחיקה המתוזמנת של אשכול LifecycleConfig.

gcloud dataproc clusters describe CLUSTER_NAME \
    --region=REGION
...
lifecycleConfig:
  autoDeleteTime: '2018-11-28T19:33:48.146Z'
  idleDeleteTtl: 1800s
  idleStartTime: '2018-11-28T18:33:48.146Z'
...

הערכים autoDeleteTime ו-idleDeleteTtl הם ערכי ההגדרה של המחיקה המתוזמנת שהוגדרו באשכול. ‫Managed Service for Apache Spark יוצר את הערך idleStartTime, שהוא זמן ההתחלה האחרון של האשכול במצב סרק. ‫Managed Service for Apache Spark מוחק את האשכול אם הוא נשאר במצב לא פעיל למשך idleStartTime + idleDeleteTtl.

‫API בארכיטקטורת REST

אפשר לשלוח בקשת clusters.list כדי לוודא שהאפשרות 'מחיקה מתוזמנת' מופעלת באשכול.