הגדרת Dataproc Hub

‫Dataproc Hub הוא שרת JupyterHub בהתאמה אישית. אדמינים יכולים להגדיר וליצור מופעים של Dataproc Hub שיכולים ליצור אשכולות של משתמש יחיד Managed Service for Apache Spark כדי לארח סביבות מחברת של Jupyter ו-JupyterLab (ראו שימוש ב-Dataproc Hub).

הפעלת מחברות לריבוי משתמשים כדי להציג notebooks לריבוי משתמשים, אתם יכולים ליצור מכונה של Vertex AI Workbench שמופעל בה Managed Service for Apache Spark, או להתקין את הפלאגין Managed Service for Apache Spark JupyterLab במכונה וירטואלית.

מטרות

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

  2. מגדירים משתני סביבה של מופע Dataproc Hub.

  3. יוצרים מכונה של Dataproc Hub.

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

אם עדיין לא עשיתם את זה, צרו פרויקט ב- Google Cloud וקטגוריה של Cloud Storage.

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

    1. 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

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

    3. Enable the Dataproc, Compute Engine, and Cloud Storage APIs, if any are not already enabled.

      Roles required to enable APIs

      To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

      Enable the APIs

    4. Install the Google Cloud CLI.

    5. Configure the gcloud CLI to use your federated identity.

      For more information, see Sign in to the gcloud CLI with your federated identity.

    6. To initialize the gcloud CLI, run the following command:

      gcloud init

  2. יצירת קטגוריה ב-Cloud Storage בפרויקט שלכם כדי לאחסן את הנתונים שמשמשים במדריך הזה.

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

      כניסה לדף Buckets

    2. לוחצים על Create.
    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, בוחרים באפשרות Bucket.
          2. בקטע Replication settings, לוחצים על Configure כדי לקבוע את ההגדרות של משימת הרפליקציה.

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

            • כדי לסנן אובייקטים לשכפול לפי קידומת שם האובייקט, מזינים את הקידומת שרוצים לכלול או להחריג אובייקטים ממנה, ואז לוחצים על Add a prefix.
            • כדי להגדיר סוג אחסון לאובייקטים המשוכפלים, בוחרים סוג אחסון מהתפריט Storage class. אם מדלגים על השלב הזה, האובייקטים המשוכפלים ישתמשו כברירת מחדל בסוג האחסון של קטגוריית היעד.
            • לוחצים על סיום.
      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. לוחצים על יצירה.

הגדרת תצורת אשכול

מופע של Dataproc Hub יוצר אשכול מתוך ערכי ההגדרה שמופיעים בקובץ תצורה של אשכול ב-YAML.

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

קובץ תצורה לדוגמה של אשכול YAML

clusterName: cluster-name
config:
  softwareConfig:
    imageVersion: 2.2-ubuntu22
    optionalComponents:
    - JUPYTER

צריך לשמור כל הגדרה ב-Cloud Storage. אתם יכולים ליצור ולשמור כמה קובצי תצורה כדי לתת למשתמשים אפשרות בחירה כשהם משתמשים ב-Dataproc Hub כדי ליצור סביבת מחברת של אשכול Managed Service for Apache Spark.

יש שתי דרכים ליצור קובץ תצורת אשכול YAML:

  1. יצירת קובץ תצורה של אשכול YAML מהמסוף

  2. ייצוא קובץ תצורה של מקבץ YAML ממקבץ קיים

יצירת קובץ תצורת אשכול YAML מהמסוף

  1. פותחים את הדף Create a cluster במסוף Google Cloud , בוחרים את השדות וממלאים אותם כדי לציין את סוג האשכול ש-Dataproc Hub ייצור עבור המשתמשים.
    1. בחלק התחתון של החלונית הימנית, בוחרים באפשרות Equivalent REST.
    2. מעתיקים את בלוק ה-JSON שנוצר, בלי שורת בקשת ה-POST הראשונה, ומדביקים אותו בכלי אונליין להמרת JSON ל-YAML (חפשו באינטרנט "Convert JSON to YAML").
    3. מעתיקים את קובץ ה-YAML שהומר לקובץ מקומי בשם cluster-config-filename.yaml.

ייצוא קובץ הגדרות של מקבץ בפורמט YAML ממקבץ קיים

  1. יוצרים אשכול שמתאים לדרישות שלכם.
  2. מייצאים את הגדרות האשכול לקובץ cluster-config-filename.yaml מקומי.
    gcloud dataproc clusters export cluster-name \
        --destination cluster-config-filename.yaml  \
        --region region
     

שמירת קובץ התצורה בפורמט YAML ב-Cloud Storage

מעתיקים את קובץ התצורה המקומי של אשכול ה-YAML לקטגוריה של Cloud Storage.

gcloud storage cp cluster-config-filename.yaml gs://bucket-name/

הגדרת משתני סביבה של מכונה ב-Dataproc Hub

האדמין יכול להגדיר את משתני הסביבה של ה-Hub שמפורטים בטבלה שבהמשך, כדי להגדיר מאפיינים של אשכולות Managed Service for Apache Spark שייווצרו על ידי משתמשי ה-Hub.

משתנה תיאור דוגמה
NOTEBOOKS_LOCATION קטגוריה של Cloud Storage או תיקייה בקטגוריה שמכילה מחברות של משתמשים. הקידומת `gs://` היא אופציונלית. ברירת מחדל: קטגוריית הביניים של Managed Service for Apache Spark. gs://bucket-name/
DATAPROC_CONFIGS רשימה של מחרוזות שמופרדות בפסיקים של נתיבי Cloud Storage אל קובצי תצורה של אשכולות בפורמט YAML. הקידומת `gs://‎` היא אופציונלית. ברירת מחדל: gs://dataproc-spawner-dist/example-configs/. שמכיל example-cluster.yaml ו-example-single-node.yaml מוגדרים מראש. gs://cluster-config-filename.yaml
DATAPROC_LOCATIONS_LIST סיומות של אזורים באזור שבו נמצא מופע Dataproc Hub. המשתמשים יכולים לבחור אחד מהאזורים האלה כאזור שבו ייווצר אשכול Managed Service for Apache Spark. ברירת מחדל: b. b,c,d
DATAPROC_DEFAULT_SUBNET רשת המשנה שבה המכונה של Dataproc Hub תיצור אשכולות של Managed Service for Apache Spark. ברירת מחדל: תת-הרשת של מופע Dataproc Hub. https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
DATAPROC_SERVICE_ACCOUNT חשבון שירות שהמכונות הווירטואליות של Managed Service for Apache Spark יפעלו בתורו. ברירת מחדל: אם לא מוגדר חשבון שירות, המערכת משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Managed Service for Apache Spark. service-account@project-id.
SPAWNER_DEFAULT_URL האם להציג את ממשק המשתמש של Jupyter או JupyterLab באשכולות של Managed Service for Apache Spark שנוצרו כברירת מחדל. ברירת מחדל: "/lab". ‫`/` או `/lab`, בהתאם ל-Jupyter או ל-JupyterLab.
DATAPROC_ALLOW_CUSTOM_CLUSTERS האם לאפשר למשתמשים להתאים אישית את האשכולות שלהם ב-Managed Service for Apache Spark. ברירת מחדל: false. "true" או "false"
DATAPROC_MACHINE_TYPES_LIST רשימה של סוגי מכונות שהמשתמשים יכולים לבחור עבור אשכולות של Managed Service for Apache Spark שהם יוצרים, אם ההתאמה האישית של האשכולות (DATAPROC_ALLOW_CUSTOM_CLUSTERS) מופעלת. ברירת מחדל: ריק (כל סוגי המכונות מותרים). n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
NOTEBOOKS_EXAMPLES_LOCATION נתיב ב-Cloud Storage לקטגוריית מחברות או לתיקייה בקטגוריה להורדה לאשכול של Managed Service for Apache Spark שנוצר, כשהאשכול מופעל. ברירת מחדל: ריק. gs://bucket-name/

הגדרת משתני סביבה של מרכז הבקרה

יש שתי דרכים להגדיר משתני סביבה של מרכז:

  1. הגדרה של משתני סביבה של Hub מהמסוף

  2. הגדרת משתני סביבה של מרכז הבקרה בקובץ טקסט

הגדרת משתני סביבה של ה-Hub מהמסוף

כשיוצרים מופע של Dataproc Hub מהכרטיסייה User-Managed Notebooks בדף Dataproc→Workbench במסוף Google Cloud , אפשר ללחוץ על הלחצן Populate כדי לפתוח טופס Populate Dataproc Hub שמאפשר להגדיר כל משתנה סביבתי.

הגדרת משתני סביבה של Hub בקובץ טקסט

  1. יוצרים את הקובץ. אתם יכולים להשתמש בכלי לעריכת טקסט כדי להגדיר משתני סביבה של מכונת Dataproc Hub בקובץ מקומי. אפשר גם ליצור את הקובץ על ידי הפעלת הפקודה הבאה אחרי שממלאים את הערכים הזמניים לשמירת מקום (placeholder) ומשנים או מוסיפים משתנים ואת הערכים שלהם.

    cat <<EOF > environment-variables-file
    DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml
    NOTEBOOKS_LOCATION=gs://bucket/notebooks
    DATAPROC_LOCATIONS_LIST=b,c
    EOF
    

  2. שמירת הקובץ ב-Cloud Storage מעתיקים את קובץ משתני הסביבה של מופע Dataproc Hub המקומי לקטגוריה של Cloud Storage.

    gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/

הגדרת תפקידים בניהול הזהויות והרשאות הגישה (IAM)

‫Dataproc Hub כולל את הזהויות הבאות עם היכולות הבאות:

  • אדמין: יוצר מכונת Dataproc Hub
  • משתמש בנתונים ובלמידת מכונה: יש לו גישה לממשק המשתמש של Dataproc Hub
  • חשבון שירות Dataproc Hub: מייצג את Dataproc Hub
  • חשבון שירות של Managed Service for Apache Spark: מייצג את אשכול Managed Service for Apache Spark שנוצר על ידי Dataproc Hub.

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

זהות סוג תפקיד או הרשאה
אדמין של Dataproc Hub חשבון משתמש או חשבון שירות roles/notebooks.admin
משתמש ב-Dataproc Hub משתמש ‫notebooks.instances.use, dataproc.clusters.use
Dataproc Hub חשבון שירות roles/dataproc.hubAgent
Dataproc חשבון שירות roles/dataproc.worker

יצירת מכונת Dataproc Hub

  1. לפני שמתחילים: כדי ליצור מופע של Managed Service for Apache Spark Hub ממסוף Google Cloud , לחשבון המשתמש שלכם צריכה להיות הרשאתcompute.instances.create. בנוסף, לחשבון השירות של המכונה – חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine או חשבון השירות שציינתם, שמופיע בקטע IAM & admin > Service Accounts (ראו חשבון השירות של Managed Service for Apache Spark VM) – צריכה להיות ההרשאה iam.serviceAccounts.actAs.

  2. עוברים לדף Dataproc→Workbench במסוף Google Cloud ובוחרים בכרטיסייה User-Managed Notebooks.

  3. אם הוא לא נבחר מראש כמסנן, לוחצים על התיבה Filter ובוחרים באפשרות **Environment:Dataproc Hub"".

  4. לוחצים על New Notebook→Dataproc Hub (מחברת חדשה → Dataproc Hub).

  5. בדף Create a user-managed notebook, מספקים את הפרטים הבאים:

    1. שם הנוטבוק: שם המופע של Dataproc Hub.
    2. ‫Region (אזור): בוחרים אזור למופע של Dataproc Hub. אשכולות של Managed Service for Apache Spark שנוצרו על ידי מופע Dataproc Hub הזה ייווצרו גם באזור הזה.
    3. תחום: בוחרים תחום בתוך האזור שנבחר.
    4. סביבה:
      1. ‫Environment: בוחרים באפשרות Dataproc Hub.
      2. Select a script to run after creation (אופציונלי): אפשר להוסיף או לעיין ולבחור סקריפט או קובץ הפעלה של פעולת אתחול להפעלה באשכול Managed Service for Apache Spark שנוצר.
      3. ‫Populate Dataproc Hub (optional): לוחצים על Populate כדי לפתוח טופס שבו אפשר להגדיר כל אחת ממשתני הסביבה של Dataproc Hub (במאמר הגדרת משתני סביבה של מופע Dataproc Hub מוסבר על כל משתנה). ב-Managed Service for Apache Spark, אם לא מגדירים ערכים למשתני הסביבה, המערכת משתמשת בערכי ברירת המחדל. לחלופין, אפשר להגדיר זוגות של key:value במטא-נתונים כדי להגדיר משתני סביבה (ראו הפריט הבא).
      4. Metadata:
        1. אם יצרתם קובץ טקסט שמכיל את הגדרות משתני הסביבה של ה-hub (ראו הגדרת משתני סביבה של ה-hub), צריך לציין את שם הקובץ כ-key ואת gs://bucket-name/folder-name/environment-variable-filenameהמיקום של הקובץ ב-Cloud Storage כ-value. ‫Managed Service for Apache Spark משתמש בערכי ברירת מחדל לכל משתני הסביבה שלא הוגדרו.
    5. הגדרת המחשב:
      1. ‫Machine Type: בוחרים את סוג המכונה של Compute Engine.
      2. מגדירים אפשרויות אחרות של המכונה.
    6. אפשרויות אחרות:
      1. אפשר להרחיב ולהגדיר או להחליף ערכי ברירת מחדל בקטעים Disks,‏ Networking,‏ Permission,‏ Security ו-Environment upgrade and system health.
    7. לוחצים על Create כדי להפעיל את המכונה של Dataproc Hub.
  6. הקישור Open JupyterLab של מופע Dataproc Hub הופך לפעיל אחרי יצירת המופע. המשתמשים לוחצים על הקישור הזה כדי לפתוח את דף השרת של JupyterHub, להגדיר וליצור אשכול Managed Service for Apache Spark JupyterLab (ראו שימוש ב-Dataproc Hub).

הסרת המשאבים

מחיקת מופע של Dataproc Hub

  • כדי למחוק את המכונה של Dataproc Hub:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

מחיקת הקטגוריה

  • כדי למחוק את הקטגוריה של Cloud Storage שיצרתם בקטע לפני שמתחילים, כולל קובצי הנתונים שמאוחסנים בקטגוריה:
    gcloud storage rm gs://${BUCKET_NAME} --recursive
    

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