יצירת סשנים אינטראקטיביים ופרופילים של סביבות זמן ריצה

במאמר הזה מוסבר איך ליצור סשנים אינטראקטיביים ופרופילי זמן ריצה של Managed Service for Apache Spark, שנקראים תבניות סשן ב-Google Cloud CLI וב-Dataproc API. פרופיל זמן ריצה הוא קבוצה של הגדרות זמן ריצה של Spark ללא שרת (serverless) שאפשר לעשות בהן שימוש חוזר, כמו שכבת המחשוב והגדרת ה-executor, שבהן אתם יכולים להשתמש כדי ליצור מסמכי Notebook וסשנים אינטראקטיביים.

יצירת סשן אינטראקטיבי

כדי ליצור סשן אינטראקטיבי ב-Managed Service for Apache Spark, אתם יכולים להשתמש ב-Google Cloud CLI או ב-Managed Service for Apache Spark API.

gcloud

אתם יכולים להשתמש בפקודה gcloud beta dataproc sessions create spark SESSION_ID כדי ליצור סשן אינטראקטיבי של Managed Service for Apache Spark:

gcloud beta dataproc sessions create spark SESSION_ID \
    --location=REGION \
    optional flags ...

מחליפים או מוסיפים את הפרטים הבאים:

REST

אתם יכולים להשתמש ב-method של ה-API‏ sessions.create ב-Managed Service for Apache Spark כדי ליצור סשן אינטראקטיבי ב-Managed Service for Apache Spark. מגדירים את שדות הבקשה הבאים:

יצירת פרופיל זמן ריצה

פרופיל זמן ריצה של Managed Service for Apache Spark (לפעמים נקרא תבנית סשן) מגדיר הגדרות אישיות לשימוש חוזר ליצירת סשנים אינטראקטיביים של Managed Service for Apache Spark. כדי ליצור פרופיל זמן ריצה, אתם יכולים להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-Managed Service for Apache Spark API. ב-CLI של gcloud וב-Dataproc API, פרופילי זמן הריצה נקראים session templates.

המסוף

כדי ליצור פרופיל זמן ריצה של Managed Service for Apache Spark באמצעות מסוףGoogle Cloud :

  1. במסוף Google Cloud , נכנסים לדף Managed Service for Apache Spark‏ Serverless (Runtime Profiles).

    מעבר אל Runtime Profiles

  2. לוחצים על יצירה.

  3. בדף Create a runtime profile, קובעים את ההגדרות הראשיות הבאות:

    • השם המוצג: שדה חובה. מזינים שם לתצוגה של פרופיל סביבת זמן הריצה, או מאשרים את השם שנוצר ומולא מראש. השם המוצג חייב להכיל לפחות אות אחת או מספר אחד, והוא נשמר כשם מוצג ברמה העליונה לכל סוגי הסשנים, כולל Spark Connect. השדה Runtime profile name הוא מזהה המשאב, והוא נגזר אוטומטית מהשם המוצג על ידי המרת אותיות לאותיות קטנות ותווים לא חוקיים למקפים, שמוצגים כרמז מתחת לשדה. כדי להתאים אישית את מזהה המשאב בנפרד מהשם המוצג, מרחיבים את Additional configuration ועורכים את Runtime configuration.

    • אזור: חובה. בוחרים אזור זמין של Compute Engine לסשנים שמשתמשים בפרופיל סביבת זמן הריצה הזה. אזור ברירת המחדל הוא us-east4 (לשעבר us-central1), וברשימה מוצגים תיאורי האזורים.

    • תיאור: אופציונלי. מזינים תיאור שיעזור לזהות את פרופיל זמן הריצה.

    • ‫Tier: בוחרים את הרמה של Managed Service for Apache Spark להרצת עומס העבודה:

      • ‫Premium: ברירת המחדל. אופטימיזציה של שאילתות מורכבות או רגישות לזמן אחזור באמצעות מנועי האצה, ותמיכה בתצורות של מפעילים עם כמות גדולה של זיכרון והאצה באמצעות GPU. כשבוחרים באפשרות Premium, תיבת הסימון Enable Lightning Engine to accelerate performance מוצגת ומסומנת כברירת מחדל כדי להאיץ את משימות Spark באמצעות Lightning Engine, שמגדיר את spark.dataproc.engine=lightningEngine.

      • Standard: סביבת הרצה רגילה של Spark לעיבוד נתונים שגרתי. סשנים אינטראקטיביים תמיד פועלים במסלול פרימיום. בחירה באפשרות Standard משפיעה רק על הפעלה באצווה. אם בוחרים באפשרות Standard, מנוע Lightning מושבת, תצורות המכונות מוגבלות לתצורות מעבד סטנדרטיות (standard-4,‏ standard-8 או standard-16) ונדרשים דיסקים מסוג HDD (standard). אם עוברים מ-Premium ל-Standard, צורות של זיכרון גבוה או GPU מאופסות ל-standard-4 ודיסקים של SSD מאופסים ל-HDD של 200 GiB.

    • ‫Executor configuration: בוחרים את מצב שינוי הגודל של המחשוב ואת צורת המכונה של מנהלי ההתקנים והמבצעים של Spark שמריצים את עומס העבודה:

      • כללי: ברירת המחדל. מספקת תצורות מכונה עם מעבד (CPU) בלבד, שמתאימות לעומסי עבודה כלליים של חילוץ, טרנספורמציה וטעינה (ETL). ברשימה Executor type, בוחרים צורה של High memory, כמו highmem-4 (ברירת המחדל) עם 4vCPUs ו-32GB זיכרון, highmem-8 עם 8vCPUs ו-64GB זיכרון, או highmem-16 עם 16vCPUs ו-128GB זיכרון, או בוחרים צורה של Standard, כמו standard-4 עם 4vCPUs ו-16GB זיכרון, standard-8 עם 8vCPUs ו-32GB זיכרון, או standard-16 עם 16vCPUs ו-64GB זיכרון. תצורות High memory זמינות רק ברמת Premium.

      • Accelerated: מספקת תצורות מכונה שמחוברות ל-GPU, שמתאימות לעומסי עבודה של מדעי הנתונים, AI או אימון והסקת מסקנות של למידת מכונה. אם בוחרים צורה מסוג Accelerated, רמת הרשת משתנה אוטומטית ל-Premium ורמת הדיסק משתנה ל-SSD (premium)‎ עם גודל ברירת מחדל של 375 GiB. ברשימה Executor type, בוחרים צורה של L4 עם 4,‏ 8,‏ 12,‏ 16,‏ 24,‏ 48 או 96 מעבדי vCPU, או בוחרים צורה של A100, כמו A100 40GB (12 vCPU) או A100 80GB (12 vCPU).

  4. אופציונלי: כדי להתאים אישית את ההגדרות של סביבת זמן ריצה מתקדמת, משאבי מחשוב, התאמה אוטומטית לעומס (automatic scaling), מאגר מטא-נתונים, רשת, אבטחה, מחזור חיים או מאפיינים, לוחצים על Additional configuration כדי להרחיב את החלונית. ליד כל קטגוריה שרוצים להתאים אישית, לוחצים על Edit, קובעים את ההגדרות בחלונית ולוחצים על Save:

    • הגדרת סביבת זמן הריצה: מגדירים את מזהה סביבת זמן הריצה, גרסת Spark, קובץ האימג' של הקונטיינר, קטגוריית ה-Staging ומאגר החבילות של Python:

      • Runtime profile name: חובה. מאשרים את מזהה המשאב שנוצר מהשם המוצג או מזינים מזהה בהתאמה אישית. המזהה חייב להיות באורך של 4 עד 63 תווים, להכיל רק אותיות קטנות, מספרים ומקפים, להתחיל ולהסתיים באות קטנה או במספר, ואי אפשר לשנות אותו אחרי שיוצרים את פרופיל זמן הריצה.

      • גרסת סביבת זמן הריצה של Spark: חובה. בוחרים גרסת זמן ריצה נתמכת של Managed Service for Apache Spark.

      • תמונה מותאמת אישית של Spark: אופציונלי. מזינים את ה-URI של Artifact Registry או של Container Registry של קובץ אימג' של קונטיינר בהתאמה אישית שכולל יחסי תלות בהתאמה אישית של Java או Python.

      • ‫Staging bucket: אופציונלי. לוחצים על Browse כדי לבחור או ליצור קטגוריית Staging ב-Cloud Storage, שבה יאוחסנו יחסי התלות של עומס העבודה, הפלט של מנהל ההתקן של המשימה וקובצי התצורה. אם משאירים את השדה ריק, Managed Service for Apache Spark מנהל באופן אוטומטי את קטגוריית ה-Staging (מסומן ב-Auto בסיכום).

      • Package Repository של Python: אופציונלי. כדי להתקין חבילות Python, מזינים את ה-URI של מאגר בהתאמה אישית, כמו https://pypi.org/simple. אם משאירים את השדה ריק, החבילות מותקנות מהמטמון של PyPI בניהול Google (סיכום ברירת המחדל).

    • הגדרת Executor ו-Driver: התאמה אישית של רמת המחשוב, רמת הדיסק, גודל הדיסק והגדרת Driver נפרדת:

      • ‫Tier: בוחרים באפשרות Premium, שכוללת את תיבת הסימון האופציונלית Enable Lightning Engine to accelerate performance, או באפשרות Standard.

      • Executor type: בוחרים מכונה מסוג General (High memory או Standard) או מכונה מסוג Accelerated (L4 או A100).

      • רמת הדיסק: בוחרים באפשרות HDD (standard) או SSD (premium). ‫HDD (standard) היא ברירת המחדל לצורות של מעבדים, והיא נדרשת ברמה Standard. ‫SSD (premium) זמין ברמת Premium לעומסי עבודה עם הרבה פעולות ערבוב או גלישה, ונדרש לצורות GPU מסוג Accelerated.

      • ‫Disk size: בוחרים גודל דיסק ב-GiB. HDD (standard) תומך ב-200 GiB עד 1500 GiB במרווחים של 100GiB, עם ברירת מחדל של 200 GiB. הערכים הנתמכים של SSD (premium) הם 375 GiB,‏ 750 GiB או 1500 GiB, וערך ברירת המחדל הוא 375 GiB.

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

    • התאמה אוטומטית לעומס (autoscaling): מגדירים הקצאת משאבים דינמית כדי להתאים את ה-executors לעומס העבודה:

      • מופעל: האפשרות הזו נבחרת כברירת מחדל, ומגדירה את spark.dynamicAllocation.enabled. כדי להשבית את ההתאמה האוטומטית לעומס, מבטלים את הסימון בתיבה הזו.

      • ‫Initial executors: מזינים את המספר הראשוני של ה-executors, שמגדיר את spark.dynamicAllocation.initialExecutors. ערך ברירת המחדל הוא 5. הערכים התקינים נעים בין 2 ל-2000 בגרסאות סביבת זמן ריצה 2.3 וגרסאות קודמות, או בין 0 ל-2000 בגרסת סביבת זמן ריצה 3.0 וגרסאות מאוחרות יותר.

      • Minimum executors: מזינים את המספר המינימלי של מבצעי המשימות, שמגדיר את spark.dynamicAllocation.minExecutors. ברירת המחדל היא 2 לגרסאות זמן ריצה 2.3 ומטה, או 0 לגרסת זמן ריצה 3.0 ומעלה, עם מגבלה עליונה של 2000.

      • ‫Maximum executors: מזינים את המספר המקסימלי של מנהלי משימות, שמגדיר את spark.dynamicAllocation.maxExecutors. ברירת המחדל היא 1000, והמגבלה המקסימלית המותרת היא 2000.

    • Metastore configuration: בוחרים את המטא-נתונים שמנהלים את המטא-נתונים של מערך הנתונים:

      • קטלוג ייעודי לזמן ריצה של Lakehouse: ברירת המחדל. משתמש בקטלוג ייעודי לזמן ריצה של Lakehouse ללא שרת (serverless) בפרויקט הנוכחי, כשנקודת הקצה של Iceberg REST מופעלת כברירת מחדל. אתם יכולים לציין את מזהה הפרויקט ולבחור מזהה קטלוג קיים או להגדיר קטלוג חדש. אפשר גם לסמן את התיבה Hive Endpoint כדי לציין את מזהה הפרויקט, מזהה הקטלוג ושם הקטלוג של נקודת הקצה של Hive.

      • ‫Dataproc Metastore: מצרף מכונה מנוהלת של Dataproc Metastore Hive Metastore ‏ (HMS). בוחרים את הפרויקט בשדה Selected project ובוחרים מכונה של שירות ברשימה Metastore service.

      • ‫None: השבתת השילוב של המטא-נתונים בסשנים שמשתמשים בפרופיל זמן הריצה הזה.

    • רשת ואבטחה: הגדרת רשת VPC, פרטי כניסה להפעלה ומפתחות הצפנה:

      • חיבור האשכול: בקטע network configuration, מסוף Google Cloud בוחר באופן אוטומטי רשת או רשת משנה מתאימה באזור שנבחר. אם באזור שנבחר אין רשת זמינה שמוגדרת כברירת מחדל, נפתח באופן אוטומטי החלון Additional configuration ומוצגת אזהרה שהרשת שמוגדרת כברירת מחדל לא זמינה. במצב כזה, הלחצן Create נשאר מושבת עד שלוחצים על Configure network ובוחרים רשת משנה זמינה. אפשר לבחור באפשרות Networks in this project כדי לבחור Primary network ו-Subnetwork בפרויקט הנוכחי, או לבחור באפשרות Networks shared from host project כדי לבחור רשת משנה של VPC משותף. ברשת המשנה שנבחרה צריכה להיות מופעלת גישה פרטית ל-Google‏ (PGA). לדרישות הקישוריות לרשת, ראו קישוריות פתוחה לרשת משנה. אפשר גם להזין תגי רשת אופציונליים כדי להחיל כללים ונתיבים של חומת אש על מכונות וירטואליות של עומסי עבודה.

      • ‫Execute notebooks with: בוחרים באפשרות User Account (ברירת המחדל) כדי להריץ קובצי Notebook באמצעות פרטי הכניסה של משתמש הקצה, או באפשרות Service Account כדי להריץ סשנים באמצעות חשבון שירות בהתאמה אישית. כשבוחרים באפשרות Service Account, צריך לציין חשבון שירות בשדה Service account.

      • הצפנה: בוחרים באפשרות Google-owned and Google-managed encryption key, שהיא ברירת המחדל, או באפשרות מפתח Cloud KMS כדי להצפין את נתוני עומס העבודה באמצעות מפתח הצפנה בניהול הלקוח (CMEK).

    • מחזור החיים של הסשן: הגדרת מגבלות לסיום אוטומטי של סשנים:

      • זמן מקסימלי ללא פעילות: אופציונלי. מזינים כמות זמן מקסימלית של חוסר פעילות ובוחרים יחידת זמן מקסימלית של חוסר פעילות ב-seconds, ב-minutes, ב-hours או ב-days, מ-10 דקות עד 330 שעות, כדי לציין כמה זמן סשן של Notebook יכול להישאר לא פעיל לפני שהוא מסתיים באופן אוטומטי.

      • משך הסשן המקסימלי: אופציונלי. מזינים כמות זמן מקסימלית לסשן ובוחרים יחידת זמן מקסימלית לסשן ב-seconds, ב-minutes, ב-hours או ב-days, מ-10 דקות עד 330 שעות, כדי לציין את משך החיים המקסימלי של סשן.

    • התאמות אישיות אחרות: הוספת מאפיינים מותאמים אישית של Spark ותוויות משאבים:

      • מאפייני Spark: אופציונלי. לוחצים על Add property ומזינים צמדי Key ו-Value למאפייני Spark בהתאמה אישית. מאפיינים שנשלטים על ידי שדות ייעודיים בטופס (כמו רמת המחשוב, גודל ה-executor וה-driver, ‏Lightning Engine, ‏spark.dynamicAllocation.* ומאפייני הקטלוג של Lakehouse) מנוהלים על ידי השדות האלה ומוסתרים מהרשימה של המאפיינים בפורמט חופשי. במסוף Google Cloud , אל תכללו את הקידומת spark:.

      • תוויות: אופציונלי. לוחצים על Add label ומזינים צמדי Key ו-Value כדי לצרף תוויות לפרופיל זמן הריצה.

  5. בודקים את פרטי ההגדרה בכרטיס Summary ואת השימוש המשוער ביחידות מחשוב נתונים (DCU) בכרטיס Pricing estimate שבצד ימין של הדף. מידע נוסף על חיובים של DCU זמין במאמר תמחור של Managed Service for Apache Spark.

  6. לוחצים על יצירה.

gcloud

ב-CLI של gcloud, פרופילי זמן הריצה מנוהלים כתבניות של סשנים. אי אפשר ליצור פרופיל סביבת זמן ריצה של Managed Service for Apache Spark ישירות באמצעות פקודת create ב-CLI של gcloud, אבל אפשר להשתמש בפקודה gcloud beta dataproc session-templates import כדי ליצור או לעדכן פרופיל סביבת זמן ריצה מקובץ תצורה של YAML. אפשר גם לייצא פרופיל זמן ריצה קיים באמצעות הפקודה gcloud beta dataproc session-templates export.

REST

ב-Managed Service for Apache Spark API, פרופילי זמן הריצה מיוצגים על ידי משאבי SessionTemplate. אתם יכולים להשתמש ב-method של ה-API של Managed Service for Apache Spark sessionTemplates.create כדי ליצור פרופיל זמן ריצה של Managed Service for Apache Spark. מגדירים את שדות הבקשה הבאים: