במאמר הזה מוסבר איך ליצור סשנים אינטראקטיביים ופרופילי זמן ריצה של 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 ...
מחליפים או מוסיפים את הפרטים הבאים:
SESSION_ID: חובה. מזהה של הסשן.
REGION: חובה. אזור זמין ב-Compute Engine שבו הסשן ימוקם.
--version: אופציונלי. גרסת זמן ריצה של Spark נתמכת. אם לא מציינים גרסה, המערכת משתמשת בגרסת ברירת המחדל של סביבת זמן הריצה של Spark.
--container-image: אופציונלי. קובץ אימג' של קונטיינר בהתאמה אישית לשימוש בסשן.
--property: אופציונלי. מאפייני Spark אחד או יותר, מופרדים בפסיקים, לסשן שלכם.
--service-account: אופציונלי. חשבון השירות שבו רוצים להשתמש בסשן. אם לא מציינים חשבון שירות, המערכת משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
--subnet: אופציונלי. השם של רשת משנה באזור של הסשן. אם לא מציינים רשת משנה, Managed Service for Apache Spark משתמש ברשת המשנהdefaultבאזור של הסשן. Managed Service for Apache Spark מפעיל גישה פרטית ל-Google (PGA) ברשת המשנה. לדרישות של קישוריות לרשת, קראו את המאמר הגדרת הרשת של Managed Service for Apache Spark.
REST
אתם יכולים להשתמש ב-method של ה-API sessions.create ב-Managed Service for Apache Spark כדי ליצור סשן אינטראקטיבי ב-Managed Service for Apache Spark.
מגדירים את שדות הבקשה הבאים:
name: שדה חובה. שם הסשן.
version: אופציונלי. כל אחת מגרסאות סביבת זמן הריצה של Spark שנתמכות בסשן. אם לא מציינים גרסה, המערכת משתמשת בגרסת ברירת המחדל.
containerImage: אופציונלי. קובץ אימג' של קונטיינר בהתאמה אישית לשימוש בסשן.
properties: אופציונלי. מיפוי של שמות מאפייני הסשן לערכים. מידע נוסף על מאפיינים נתמכים זמין במאמר מאפייני Spark.
serviceAccount: אופציונלי. חשבון השירות שבו משתמשים כדי להריץ את הסשן. אם לא מציינים חשבון שירות, המערכת משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
subnetworkUri: אופציונלי. השם של רשת משנה באזור של הסשן. אם לא מציינים רשת משנה, Managed Service for Apache Spark משתמש ברשת המשנהdefaultבאזור של הסשן. Managed Service for Apache Spark מפעיל גישה פרטית ל-Google (PGA) ברשת המשנה. לדרישות של קישוריות לרשת, קראו את המאמר הגדרת הרשת של 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 :
במסוף Google Cloud , נכנסים לדף Managed Service for Apache Spark Serverless (Runtime Profiles).
לוחצים על יצירה.
בדף 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).
אופציונלי: כדי להתאים אישית את ההגדרות של סביבת זמן ריצה מתקדמת, משאבי מחשוב, התאמה אוטומטית לעומס (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 כדי לצרף תוויות לפרופיל זמן הריצה.
בודקים את פרטי ההגדרה בכרטיס Summary ואת השימוש המשוער ביחידות מחשוב נתונים (DCU) בכרטיס Pricing estimate שבצד ימין של הדף. מידע נוסף על חיובים של DCU זמין במאמר תמחור של Managed Service for Apache Spark.
לוחצים על יצירה.
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. מגדירים את שדות הבקשה הבאים:
name: שדה חובה. שם המשאב של פרופיל סביבת זמן הריצה.
version: אופציונלי. כל אחת מגרסאות סביבת זמן הריצה של Spark שנתמכות בסשנים שלכם. אם לא מציינים גרסה, המערכת משתמשת בגרסת ברירת המחדל.
sessionConfig: מציינים את הערךjupyterSessionאוsparkConnectSession. אם מציינים את השדהjupyterSession, צריך לציין גם את השדותJupyterConfig.displayNameו-JupyterConfig.kernel. מידע נוסף על סשנים של Jupyter Notebook זמין במאמר הפעלת Jupyter Notebook ב-Managed Service for Apache Spark.
containerImage: אופציונלי. קובץ אימג' של קונטיינר בהתאמה אישית לשימוש בסשנים.
properties: אופציונלי. מיפוי של שמות המאפיינים של Spark לערכים, כולל מאפיינים של שכבה, מנוע, צורת מכונה, דיסק והתאמה אוטומטית לעומס. מידע נוסף על מאפיינים נתמכים זמין במאמר מאפייני Spark.
serviceAccount: אופציונלי. חשבון שירות להרצת הסשנים. אם לא מציינים חשבון שירות, המערכת משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
subnetworkUri: אופציונלי. השם של רשת משנה באזור של הסשן. אם לא מציינים רשת משנה, Managed Service for Apache Spark משתמש ברשת המשנהdefaultבאזור של הסשן. Managed Service for Apache Spark מפעיל גישה פרטית ל-Google (PGA) ברשת המשנה. לדרישות של קישוריות לרשת, קראו את המאמר הגדרת הרשת של Managed Service for Apache Spark.