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