ניהול גרסאות ב-Dataproc

‫Dataproc משתמש בתמונות כדי לקשר בין מחברים שימושיים Google Cloud לבין רכיבי Apache Spark ו-Apache Hadoop לחבילה אחת שאפשר לפרוס באשכול Dataproc. התמונות האלה מכילות את מערכת ההפעלה הבסיסית (Debian או Ubuntu) של האשכול, יחד עם רכיבי ליבה ורכיבים אופציונליים שנדרשים להרצת משימות, כמו Spark,‏ Hadoop ו-Hive. התמונות האלה משודרגות מעת לעת כדי לכלול שיפורים ותכונות חדשים. הגרסאות ב-Dataproc מאפשרות לכם לבחור קבוצות של גרסאות תוכנה כשאתם יוצרים אשכולות.

איך מתבצע ניהול גרסאות

כשיוצרים תמונה, מקצים לה מספר גרסת תמונה בפורמט הבא:

version_major.version_minor.version_sub_minor-os_distribution

הפצות מערכת ההפעלה הבאות נתמכות:

קוד ההפצה של מערכת ההפעלה OS Distribution
debian12 ‫Debian 12
debian10 ‫Debian 10
debian11 ‫Debian 11
rocky8 Rocky Linux 8
rocky9 Rocky Linux 9
ubuntu18 Ubuntu 18.04 LTS
ubuntu20 ‫Ubuntu 20.04 LTS
ubuntu22 ‫Ubuntu 22.04 LTS

במאמר גרסאות ישנות של תמונות מפורטות הפצות קודמות של מערכות הפעלה שנתמכו.

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

בחירת גרסאות

כשיוצרים אשכול Dataproc חדש, המערכת משתמשת כברירת מחדל בגרסה העדכנית ביותר של קובץ האימג' של Debian. כשיוצרים אשכול, אפשר לבחור גרסת תמונה של Debian,‏ Rocky Linux או Ubuntu (ראו את רשימת גרסאות התמונות של Dataproc). כשמציינים תמונות מבוססות Debian, אפשר להשמיט את הסיומת של קוד הפצת מערכת ההפעלה, למשל, אפשר לציין 2.0 כדי לבחור את התמונה 2.0-debian10. חובה להשתמש בסיומת של מערכת ההפעלה כדי לבחור תמונה שמבוססת על Rocky Linux או על Ubuntu, למשל על ידי ציון 2.0-ubuntu18.

פקודת gcloud

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

דוגמה לקובץ אימג' של Debian:

gcloud dataproc clusters create CLUSTER_NAME \
    --image-version=2.0 \
    --region=REGION

דוגמה לתמונה של Ubuntu:

gcloud dataproc clusters create CLUSTER_NAME \
    --image-version=2.0-ubuntu18 \
    --region=REGION

השיטה המומלצת היא להשמיט את גרסת המשנה כדי שהמערכת תשתמש בגרסת המשנה העדכנית ביותר. עם זאת, אם יש צורך, אפשר לציין את גרסת המשנה, למשל 2.0.20.

אפשר לבדוק את הגרסה הנוכחית באמצעות Google Cloud CLI.

gcloud dataproc clusters describe CLUSTER_NAME \
    --region=REGION

API ל-REST

אפשר לציין את השדה SoftwareConfig imageVersion כחלק מבקשת API של cluster.create.

דוגמה

POST /v1/projects/project-id/regions/us-central1/clusters/
{
  "projectId": "project-id",
  "clusterName": "example-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-b"
    },
    "masterConfig": {
      ...
      }
    },
    "workerConfig": {
      ...
      }
    },
    "softwareConfig": {
      "imageVersion": "2.0"
    }
  }
}
  

המסוף

פותחים את הדף Dataproc Create a cluster (יצירת אשכול). החלונית הגדרת אשכול נבחרת. בשדה סוג התמונה ובשדה גרסה שבקטע ניהול גרסאות מוצגת התמונה שתשמש ליצירת האשכול. מוצג גם תאריך הפרסום של התמונה. בתחילה, התמונה שמוגדרת כברירת מחדל, הגרסה האחרונה הזמינה של Debian, מוצגת כבחירה. לוחצים על שינוי כדי להציג רשימה של תמונות זמינות. אתם יכולים לבחור תמונה רגילה או תמונה בהתאמה אישית לשימוש באשכול.

כשנוצרות גרסאות חדשות

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

  • מהדורות חשובות של:
    • ‫Spark,‏ Hadoop ורכיבים אחרים של Big Data
    • Google Cloud מחברים
  • שינויים או עדכונים משמעותיים בפונקציונליות של Dataproc

גרסאות טרום-השקה (Preview) חדשות (עם הסיומת -RC) מתפרסמות לפני הפרסום של הגרסה הראשית החדשה:

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

גרסאות משניות חדשות נוצרות מעת לעת כדי לשלב בהן את אחד או יותר מהשינויים הבאים:

  • עדכונים וגרסאות משנה ל:
    • ‫Spark,‏ Hadoop ורכיבים אחרים של Big Data
    • Google Cloud מחברים
  • שינויים קלים או עדכונים בפונקציונליות של Dataproc

כשנוצרת גרסה משנית חדשה, קובץ האימג' של Debian שלה הופך לברירת המחדל של הגרסה הראשית, והוא מייצג את הגרסה האחרונה של הגרסה הראשית.

מעת לעת נוצרות גרסאות משניות חדשות כדי לשלב בהן אחד או יותר מהשינויים הבאים:

  • תיקונים או עדכונים לרכיב בתמונה
  • שדרוגים של גרסאות משנה של רכיבים

גרסת התמונה ותמיכה ב-Dataproc

גרסאות משניות של תמונות נתמכות למשך 24 חודשים אחרי ההשקה הראשונית של GA (זמינות כללית). במהלך התקופה הזו, קלאסטרים שמשתמשים בגרסאות התמונות האלה זכאים לתמיכה (כדי לקבל תיקונים, צריך ליצור מחדש את הקלאסטר באמצעות גרסת המשנה העדכנית ביותר של התמונה שנתמכת). אחרי חלון התמיכה, אשכולות שמשתמשים בגרסאות התמונות לא עומדים בדרישות לקבלת תמיכה.

גרסאות ישנות של תמונות

הפצות של מערכות הפעלה שנתמכו בעבר

בעבר הייתה תמיכה בהפצות הבאות של מערכות הפעלה:

קוד ההפצה של מערכת ההפעלה OS Distribution תיקון אחרון (סיום התמיכה)
debian9 Debian 9 ‫10 ביולי 2020
deb8 Debian 8 ‫26 באוקטובר 2018

גרסאות תמונה ללא הפצה מפורשת של מערכת ההפעלה

לפני 16 באוגוסט 2018, גרסאות התמונות נבנו באמצעות Debian 8, ולא כללו את קוד ההפצה של מערכת ההפעלה. הם מצוינים בפורמט הבא:

version_major.version_minor.version_sub_minor

גרסאות 0.1 ו-0.2

גרסאות של תמונות שפורסמו כגרסאות אלפא או בטא לפני הזמינות לכלל המשתמשים (GA) של גרסת Dataproc‏ 1.0 לא כפופות למדיניות התמיכה של Dataproc.

הערות חשובות לגבי ניהול גרסאות

  • גרסאות של תמונות מכילות את הרכיבים הבאים:
  • העדכון של אשכולות Dataproc לא מתבצע באופן אוטומטי כשמתפרסמות גרסאות חדשות של תמונות.
    • המלצות:
    • להריץ אשכולות עם גרסת המשנה האחרונה של האימג'. המטא-נתונים של התמונה כוללים תווית previous-subminor, שמוגדרת כ-true אם האשכול לא משתמש בגרסת התמונה המשנית העדכנית ביותר.
      • כדי לראות את המטא-נתונים של תמונה:
        1. מריצים את הפקודה הבאה gcloud compute images list --filter כדי להציג את שם המשאב של תמונת Dataproc.
          gcloud compute images list --project=PROJECT_NAME --filter="labels.goog-dataproc-version ~ ^IMAGE_VERSION (such as 2.2.16-debian12)"
          
        2. מריצים את הפקודה הבאה של gcloud compute images describe כדי להציג את המטא-נתונים של התמונה.
          gcloud compute images describe --project=PROJECT_NAME IMAGE_NAME"
          
    • חשוב לבדוק ולאמת שהאפליקציות פועלות בהצלחה באשכולות שנוצרו באמצעות גרסאות חדשות של תמונות, במיוחד כשמשתמשים בגרסאות חדשות של תמונות.