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

במאמר הזה מוסבר איך ליצור סשנים אינטראקטיביים ופרופילי זמן ריצה של 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 , נכנסים לדף Serverless Runtime Profiles של Managed Service for Apache Spark.

    כניסה לדף Serverless 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 (ברירת המחדל) עם 4 vCPUs ו-32GB זיכרון, highmem-8 עם 8 vCPUs ו-64GB זיכרון, או highmem-16 עם 16 vCPUs ו-128GB זיכרון, או בוחרים צורה של Standard, כמו standard-4 עם 4 vCPUs ו-16GB זיכרון, standard-8 עם 8 vCPUs ו-32GB זיכרון, או standard-16 עם 16 vCPUs ו-64GB זיכרון. תבניות High memory זמינות רק ברמת Premium.

      • Accelerated: מספקת תצורות מכונה עם GPU שמתאימות לעומסי עבודה של מדע הנתונים, אימון AI או ML והיקש. אם בוחרים תבנית 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.

      • סוג מפעיל: בוחרים מכונה מסוג כללי (High memory או Standard) או מכונה מסוג מואץ (L4 או A100).

      • ‫Disk tier: בוחרים באפשרות 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. מסמנים את התיבה הזו כדי להתאים אישית את סוג המכונה של מנהל ההתקן, את רמת הדיסק של מנהל ההתקן ואת גודל הדיסק של מנהל ההתקן בנפרד.

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

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

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

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

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

    • הגדרת Metastore: בוחרים את ה-Metastore שמנהל את המטא-נתונים של קבוצת הנתונים:

      • קטלוג ייעודי לזמן ריצה של Lakehouse: ברירת המחדל. משתמש בקטלוג ייעודי לזמן ריצה של Lakehouse ללא שרת בפרויקט הנוכחי, כשנקודת הקצה של 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).

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

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