יצירת תמונה בהתאמה אישית של Managed Service for Apache Spark

אתם יכולים ליצור אשכול Managed Service for Apache Spark עם תמונה בהתאמה אישית שכוללת את החבילות שהתקנתם מראש. בדף הזה מוסבר איך ליצור תמונה בהתאמה אישית ולהתקין אותה באשכול Managed Service for Apache Spark.

שיקולים ומגבלות לגבי השימוש

  • משך החיים של תמונה בהתאמה אישית: כדי לוודא שהאשכולות יקבלו את העדכונים האחרונים של השירות ותיקוני באגים, יצירת אשכולות עם תמונה בהתאמה אישית מוגבלת ל-365 ימים מתאריך היצירה של התמונה בהתאמה אישית. שימו לב: אשכולות קיימים שנוצרו באמצעות תמונה בהתאמה אישית יכולים לפעול ללא הגבלת זמן.

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

  • ל-Linux בלבד: ההוראות במסמך הזה רלוונטיות רק למערכות הפעלה של Linux. יכול להיות שבעתיד תהיה תמיכה במערכות הפעלה אחרות בגרסאות של Managed Service for Apache Spark.

  • קובצי אימג' בסיסיים נתמכים: כדי ליצור קובץ אימג' בהתאמה אישית, צריך להתחיל מקובץ אימג' בסיסי של Managed Service for Apache Spark. תמונות הבסיס הבאות נתמכות: Debian,‏ Rocky Linux ו-Ubuntu.

  • שימוש ברכיבים אופציונליים:

    לא משנה איזו תמונה בסיסית משמשת ליצירת תמונה מותאמת אישית, כשיוצרים את האשכול, צריך לציין או לבחור רכיבים אופציונליים.

    דוגמה: פקודה ליצירת אשכול ב-Google Cloud CLI:

    gcloud dataproc clusters create CLUSTER_NAME
        --image=CUSTOM_IMAGE_URI  \
        --optional-components=COMPONENT_NAME \
        ... other flags
    

    אם לא מציינים את שם הרכיב כשיוצרים את האשכול, הרכיב האופציונלי, כולל חבילות ומערכות הפעלה מותאמות אישית, יימחקו.

  • שימוש בתמונות בהתאמה אישית שמתארחות בפרויקט אחר: אם משתמשים בתמונה בהתאמה אישית שמתארחת בפרויקט אחר, לחשבון השירות של סוכן השירות של Managed Service for Apache Spark בפרויקט צריך להיות הרשאה compute.images.get לתמונה בפרויקט המארח. כדי להעניק את ההרשאה הזו, צריך להקצות את התפקיד roles/compute.imageUser בתמונה המתארחת לחשבון השירות של סוכן השירות Managed Service for Apache Spark של הפרויקט (ראו שיתוף תמונות בהתאמה אישית בארגון).

  • שימוש בסודות של MOK (מפתח בעלים של מכונה) לאתחול מאובטח: כדי להפעיל אתחול מאובטח עם תמונה בהתאמה אישית של Managed Service for Apache Spark, צריך לבצע את הפעולות הבאות:

    1. מפעילים את Secret Manager API‏ (secretmanager.googleapis.com. שירות Managed Service for Apache Spark יוצר ומנהל צמד מפתחות באמצעות שירות Secret Manager.

    2. כשיוצרים תמונה בהתאמה אישית, מוסיפים את הדגל --service-account="SERVICE_ACCOUNT" לפקודה generate_custom_image.py. הערה: צריך להקצות לחשבון השירות את התפקיד Secret Manager Viewer ‏ (roles/secretmanager.viewer) בפרויקט ואת התפקיד Secret Manager Accessor ‏ (roles/secretmanager.secretAccessor) בסודות הציבוריים והפרטיים.

      מידע נוסף עם דוגמאות זמין בקובץ README.md ובקבצים אחרים בספרייה examples/secure-boot במאגר GoogleCloudDataproc/custom-images ב-GitHub.

      כדי להשבית את האתחול המאובטח: כברירת מחדל, סקריפטים של תמונות בהתאמה אישית של Managed Service for Apache Spark יוצרים ומנהלים זוג מפתחות באמצעות Secret Manager כשהם מופעלים מאשכול של Managed Service for Apache Spark. אם לא רוצים להשתמש באתחול מאובטח עם התמונה המותאמת אישית, צריך לכלול את --trusted-cert="" (ערך ריק של דגל) בפקודה generate_custom_image.py כשיוצרים את התמונה המותאמת אישית.

לפני שמתחילים

חשוב להגדיר את הפרויקט לפני שיוצרים את התמונה בהתאמה אישית.

הגדרת הפרויקט

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc API, Compute Engine API, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Dataproc API, Compute Engine API, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  14. התקנה של Python 3.11 ואילך
  15. מכינים סקריפט להתאמה אישית שמתקין חבילות מותאמות אישית או מעדכן הגדרות, למשל:
      #! /usr/bin/bash
      apt-get -y update
      apt-get install python-dev
      apt-get install python-pip
      pip install numpy
      

יצירת קטגוריה של Cloud Storage בפרויקט

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. לוחצים על יצירה.
  3. ממלאים את פרטי הקטגוריה בדף Create a bucket. כדי לעבור לשלב הבא לוחצים על Continue.
    1. בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
    2. בקטע Choose where to store your data, מבצעים את הפעולות הבאות:
      1. בוחרים סוג מיקום.
      2. בתפריט הנפתח Location type, בוחרים מיקום שבו יישמרו נתוני הקטגוריה באופן קבוע.
      3. כדי להגדיר שכפול בין מאגרי מידע, בוחרים באפשרות הוספת שכפול בין מאגרי מידע באמצעות Storage Transfer Service ופועלים לפי השלבים הבאים:

        הגדרה של רפליקציה בין דליים

        1. בתפריט Bucket, בוחרים באפשרות הרצויה.
        2. בקטע הגדרות השכפול, לוחצים על הגדרה כדי להגדיר את ההגדרות של משימת השכפול.

          מופיעה החלונית Configure cross-bucket replication.

          • כדי לסנן אובייקטים לשכפול לפי קידומת של שם האובייקט, מזינים קידומת שרוצים לכלול או להחריג אובייקטים ממנה, ואז לוחצים על הוספת קידומת.
          • כדי להגדיר סוג אחסון לאובייקטים המשוכפלים, בוחרים סוג אחסון בתפריט סוג אחסון. אם מדלגים על השלב הזה, האובייקטים המשוכפלים ישתמשו בסוג האחסון של קטגוריית היעד כברירת מחדל.
          • לוחצים על סיום.
    3. בקטע Choose how to store your data, מבצעים את הפעולות הבאות:
      1. בוחרים default storage class לקטגוריה או Autoclass לניהול אוטומטי של סוג האחסון (storage class) של נתוני הקטגוריה.
      2. כדי להפעיל מרחב שמות היררכי, בקטע Optimize storage for data-intensive workloads, בוחרים באפשרות Enable hierarchical namespace on this bucket.
    4. בקטע Choose how to control access to objects, בוחרים אם הקטגוריה אוכפת public access prevention או לא, ואז בוחרים שיטת בקרת גישה לאובייקטים של הקטגוריה.
    5. בקטע Choose how to protect object data, מבצעים את הפעולות הבאות:
      • בוחרים באחת מהאפשרויות בקטע הגנה על נתונים שרוצים להגדיר לקטגוריה.
        • כדי להפעיל מחיקה עם אפשרות שחזור, מסמנים את התיבה Soft delete policy (For data recovery) ומציינים את מספר הימים שבהם רוצים לשמור אובייקטים אחרי המחיקה.
        • כדי להגדיר ניהול גרסאות של אובייקטים, מסמנים את התיבה ניהול גרסאות של אובייקטים (לשליטה בגרסאות) ומציינים את מספר הגרסאות המקסימלי לכל אובייקט ואת מספר הימים שאחריהם הגרסאות הלא עדכניות יפוגו.
        • כדי להפעיל את מדיניות שמירת הנתונים על אובייקטים וקטגוריות, לוחצים על תיבת הסימון שמירת נתונים (לצורך תאימות), ואז מבצעים את הפעולות הבאות:
          • כדי להפעיל את הנעילה של שמירת אובייקטים, מסמנים את התיבה הפעלת שמירת אובייקטים.
          • כדי להפעיל את נעילת הקטגוריה, מסמנים את תיבת הסימון הגדרת מדיניות שמירת נתונים בקטגוריה ובוחרים יחידת זמן ואת משך הזמן של תקופת השמירה.
      • כדי לבחור איך להצפין את נתוני האובייקט, מרחיבים את הקטע Data encryption () ובוחרים Data encryption method.
  4. לוחצים על יצירה.

יצירת תמונה בהתאמה אישית

משתמשים ב-generate_custom_image.py, תוכנית Python, כדי ליצור תמונה בהתאמה אישית של Managed Service for Apache Spark.

איך זה עובד

התוכנית generate_custom_image.py מפעילה מכונת VM זמנית ב-Compute Engine עם תמונת הבסיס שצוינה של Managed Service for Apache Spark, ואז מריצה את סקריפט ההתאמה האישית בתוך מכונת ה-VM כדי להתקין חבילות בהתאמה אישית או לעדכן הגדרות. אחרי שהסקריפט להתאמה אישית מסתיים, הוא משבית את המכונה הווירטואלית ויוצר תמונה מותאמת אישית של Managed Service for Apache Spark מדיסק המכונה הווירטואלית. המכונה הווירטואלית הזמנית נמחקת אחרי שנוצרת התמונה המותאמת אישית. התמונה המותאמת אישית נשמרת ואפשר להשתמש בה כדי ליצור אשכולות של Managed Service for Apache Spark.

התוכנית generate_custom_image.py משתמשת ב-CLI של gcloud כדי להריץ תהליכי עבודה מרובי-שלבים ב-Compute Engine.

הרצת הקוד

מבצעים Fork או שיבוט של הקבצים ב-GitHub בכתובת Managed Service for Apache Spark custom images.

לאחר מכן, מריצים את הסקריפט generate_custom_image.py כדי ש-Managed Service for Apache Spark ייצור וישמור את התמונה המותאמת אישית.

python3 generate_custom_image.py \
    --image-name=CUSTOM_IMAGE_NAME \
    [--family=CUSTOM_IMAGE_FAMILY_NAME] \
    --dataproc-version=IMAGE_VERSION \
    --customization-script=LOCAL_PATH \
    --zone=ZONE \
    --gcs-bucket=gs://BUCKET_NAME \
    [--no-smoke-test]

תגים נדרשים

  • --image-name: שם הפלט של התמונה המותאמת אישית.

  • --dataproc-version: גרסת התמונה של Managed Service for Apache Spark שבה רוצים להשתמש בתמונה המותאמת אישית. מציינים את הגרסה בפורמט x.y.z-os או x.y.z-rc-os, לדוגמה, ‎"2.0.69-debian10".

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

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

    rm -r /root/.gsutil /root/.config/gcloud
    
  • --zone: האזור של Compute Engine שבו generate_custom_image.py ייצור מכונה וירטואלית זמנית כדי ליצור את התמונה המותאמת אישית.

  • --gcs-bucket: ‏URI בפורמט gs://BUCKET_NAME שמפנה אל קטגוריה של Cloud Storage. ‫generate_custom_image.py כותב קובצי יומן לקטגוריה הזו.

דגלים אופציונליים

  • --family: משפחת התמונות של התמונה המותאמת אישית. משפחות תמונות משמשות לקיבוץ תמונות דומות, ואפשר להשתמש בהן כשיוצרים אשכול כאינדיקטור לתמונה האחרונה במשפחה. לדוגמה, custom-2-2-debian12.
  • --no-smoke-test: דגל אופציונלי שמשבית את בדיקת העשן של תמונת ה-Docker החדשה. בבדיקת העשן נוצר אשכול בדיקה של Managed Service for Apache Spark עם התמונה שנוצרה, מופעלת משימה קטנה ואז האשכול נמחק בסוף הבדיקה. בדיקת העשן מופעלת כברירת מחדל כדי לוודא שקובץ האימג' החדש בהתאמה אישית יכול ליצור אשכול פונקציונלי של Managed Service for Apache Spark. השבתת השלב הזה באמצעות הדגל --no-smoke-test מזרזת את תהליך build של התמונה המותאמת אישית, אבל לא מומלץ להשתמש בו.
  • --subnet: רשת המשנה שבה יש להשתמש כדי ליצור את המכונה הווירטואלית שיוצרת את התמונה המותאמת אישית של Managed Service for Apache Spark. אם הפרויקט שלכם הוא חלק מרשת VPC משותפת, אתם צריכים לציין את כתובת ה-URL המלאה של רשת המשנה בפורמט הבא: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET.
  • --optional-components: הדגל הזה זמין רק כשמשתמשים בגרסאות של תמונת בסיס 2.3 ואילך. רשימה של רכיבים אופציונליים, כמו SOLR,‏ RANGER,‏ TRINO,‏ DOCKER,‏ FLINK,‏ HIVE_WEBHCAT,‏ ZEPPELIN,‏ HUDI,‏ ICEBERG ו-PIG (PIG זמין כרכיב אופציונלי בגרסאות תמונה 2.3 ואילך), להתקנה בתמונה.

    דוגמה: פקודה ליצירת אשכול ב-Google Cloud CLI:

    gcloud dataproc clusters create CLUSTER_NAME
        --image=CUSTOM_IMAGE_URI  \
        --optional-components=COMPONENT_NAME \
        ... other flags
    

רשימה של הדגלים האופציונליים הזמינים מופיעה במאמר Optional Arguments (ארגומנטים אופציונליים) ב-GitHub.

אם הפקודה generate_custom_image.py תצליח, הפלט של חלון הטרמינל יציג את imageURI של התמונה המותאמת אישית (הערך המלא של imageUri מוצג במודגש בהמשך):

...
managedCluster:
    clusterName: verify-image-20180614213641-8308a4cd
    config:
      gceClusterConfig:
        zoneUri: ZONE
      masterConfig:
        imageUri: **https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME**
...

INFO:__main__:Successfully built Dataproc custom image: CUSTOM_IMAGE_NAME
INFO:__main__:

#####################################################################
  WARNING: DATAPROC CUSTOM IMAGE 'CUSTOM_IMAGE_NAME'
           WILL EXPIRE ON 2018-07-14 21:35:44.133000.
#####################################################################

תוויות מותאמות אישית של גרסאות תמונות (שימוש מתקדם)

כשמשתמשים בכלי ליצירת אימג' בהתאמה אישית ב-Managed Service for Apache Spark, הכלי מגדיר תווית goog-dataproc-version באימג' בהתאמה אישית שנוצר. התווית משקפת את יכולות התכונה ואת הפרוטוקולים שבהם נעשה שימוש ב-Managed Service for Apache Spark כדי לנהל את התוכנה בתמונה.

שימוש מתקדם: אם אתם משתמשים בתהליך משלכם כדי ליצור תמונה מותאמת אישית של Managed Service for Apache Spark, אתם צריכים להוסיף את התווית goog-dataproc-version לתמונה המותאמת אישית באופן ידני, באופן הבא:

  1. מחפשים את התווית goog-dataproc-version בקובץ הבסיס של Managed Service for Apache Spark שמשמש ליצירת קובץ האימג' בהתאמה אישית.

    gcloud compute images describe ${BASE_DATAPROC_IMAGE} \
        --project cloud-dataproc \
        --format="value(labels.goog-dataproc-version)"
    

  2. מגדירים את התווית בתמונה בהתאמה אישית.

    gcloud compute images add-labels IMAGE_NAME --labels=[KEY=VALUE,...]
    

שימוש בתמונה מותאמת אישית

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

URI של תמונה מותאמת אישית

מעבירים את imageUri של התמונה המותאמת אישית לפעולת יצירת האשכול. אפשר לציין את ה-URI הזה באחת משלוש דרכים:

  1. ‫URI מלא:
    https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/`gs://`BUCKET_NAME`
  2. ‫URI חלקי: projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME
  3. שם מקוצר: CUSTOM_IMAGE_NAME

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

  1. ‫URI מלא:
    https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME/var>
  2. ‫URI חלקי: projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME

איתור ה-URI של התמונה המותאמת אישית

Google Cloud CLI

מריצים את הפקודה הבאה כדי להציג את השמות של קובצי האימג' בהתאמה אישית.

gcloud compute images list

מעבירים את השם של קובץ האימג' בהתאמה אישית לפקודה הבאה כדי להציג את ה-URI (selfLink) של קובץ האימג' בהתאמה אישית.

gcloud compute images describe custom-image-name

קטע טקסט של פלט:

...
name: CUSTOM_IMAGE_NAME
selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME
...

מסוףGoogle Cloud

  1. פותחים את הדף Compute Engine→Images במסוף Google Cloud ולוחצים על שם התמונה. אפשר להזין שאילתה בשדה filter images כדי להגביל את מספר התמונות שמוצגות.
  2. ייפתח הדף פרטי התמונות. לוחצים על Equivalent REST.
  3. בתגובת ה-REST מפורט מידע נוסף על התמונה, כולל selfLink, שהוא ה-URI של התמונה.
    {
      ...
      "name": "my-custom-image",
      "selfLink": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME",
      "sourceDisk": ...,
      ...
    }
    

יצירת אשכול עם תמונה בהתאמה אישית

ליצור אשכול באמצעות ה-CLI של gcloud,‏ Dataproc API או מסוףGoogle Cloud .

מסוףGoogle Cloud

  1. פותחים את הדף Create cluster.
  2. בקטע הגדרת האשכול, לוחצים על סוג התמונה והגרסה, בוחרים באפשרות תמונה בהתאמה אישית, מאשרים או משנים את הפרויקט ובוחרים תמונה בהתאמה אישית שזמינה.

‫CLI של gcloud

כדי ליצור אשכול Managed Service for Apache Spark עם תמונה בהתאמה אישית, משתמשים בפקודה dataproc clusters create עם הדגל --image.

לדוגמה:
gcloud dataproc clusters create CLUSTER-NAME \
    --image=CUSTOM_IMAGE_URI \
    --region=REGION \
    ... other flags

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

כדי ליצור אשכול עם תמונה בהתאמה אישית, מציינים URI של תמונה בהתאמה אישית בשדה InstanceGroupConfig.imageUri באובייקט masterConfig, באובייקט workerConfig ובאובייקט secondaryWorkerConfig (אם רלוונטי) שנכללים בבקשת API מסוג cluster.create.

דוגמה: בקשת REST ליצירת אשכול רגיל של Managed Service for Apache Spark (צומת ראשי אחד ושני צמתים של עובדים) עם תמונה בהתאמה אישית.

POST /v1/projects/PROJECT_ID/regions/REGION/clusters/
{
  "clusterName": "CLUSTER_NAME",
  "config": {
    "masterConfig": {
      "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME"
    },
    "workerConfig": {
      "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME"
    }
  }
}
  

החלפת מאפייני אשכול של Managed Service for Apache Spark באמצעות תמונה בהתאמה אישית

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

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

  1. בסקריפט ההתאמה האישית של קובץ האימג' המותאם אישית, יוצרים קובץ dataproc.custom.properties ב-/etc/google-dataproc, ואז מגדירים את ערכי מאפייני האשכול בקובץ.

    • קובץ dataproc.custom.properties לדוגמה:
    dataproc.conscrypt.provider.enable=VALUE
    dataproc.logging.stackdriver.enable=VALUE
    
    • דוגמה לקטע קוד ליצירת קובץ סקריפט להתאמה אישית, שמבטל את ההגדרה של שני מאפייני אשכול:
    cat <<EOF >/etc/google-managed-spark/dataproc.custom.properties
    dataproc.conscrypt.provider.enable=true
    dataproc.logging.stackdriver.enable=false
    EOF
    

יצירת אשכול עם תמונה מותאמת אישית שתוקפה פג

כברירת מחדל, התוקף של תמונות בהתאמה אישית פג 365 ימים מתאריך היצירה של התמונה. כדי ליצור אשכול שמשתמש בתמונה מותאמת אישית שתוקף השימוש בה פג, צריך לבצע את השלבים הבאים.

  1. ניסיון ליצור אשכול Managed Service for Apache Spark עם תמונה מותאמת אישית שתוקף שלה פג או שתוקף שלה יפוג תוך 10 ימים.

    gcloud dataproc clusters create CLUSTER-NAME \
        --image=CUSTOM-IMAGE-NAME \
        --region=REGION \
        ... other flags
    
  2. ה-CLI של gcloud יציג הודעת שגיאה שכוללת את שם המאפיין של האשכול dataproc:dataproc.custom.image.expiration.token ואת ערך הטוקן.

dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE

מעתיקים את המחרוזת TOKEN_VALUE ללוח.

  1. משתמשים ב-CLI של gcloud כדי ליצור מחדש את אשכול Managed Service for Apache Spark, ומוסיפים את TOKEN_VALUE שהועתק כמאפיין של האשכול.

    gcloud dataproc clusters create CLUSTER-NAME \
        --image=CUSTOM-IMAGE-NAME \
        --properties=dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE \
        --region=REGION \
        ... other flags
    

יצירת האשכול עם התמונה בהתאמה אישית אמורה להצליח.