במאמר הזה מוסבר איך ליצור פרופיל של השימוש במשאבים ב- Google Cloud Serverless for Apache Spark. Cloud Profiler אוסף ומדווח באופן רציף על נתוני השימוש במעבד (CPU) של האפליקציה ועל הקצאת הזיכרון. אפשר להפעיל את יצירת הפרופיל כששולחים אצווה או כשיוצרים עומס עבודה של סשן באמצעות מאפייני הפרופיל שמפורטים בטבלה הבאה.
Google Cloud Serverless for Apache Spark מוסיף אפשרויות קשורות של JVM להגדרות spark.driver.extraJavaOptions ו-spark.executor.extraJavaOptions שמשמשות לעומס העבודה.
| אפשרות | תיאור | ערך | ברירת מחדל |
|---|---|---|---|
dataproc.profiling.enabled |
הפעלת פרופיל של עומס העבודה | true או false |
false |
dataproc.profiling.name |
שם הפרופיל בשירות Profiler | PROFILE_NAME | spark-WORKLOAD_TYPE-WORKLOAD_ID, כאשר: |
הערות:
- Serverless ל-Apache Spark מגדיר את גרסת הפרופיל לאחד מהערכים הבאים: UUID של אצווה או UUID של סשן.
- כלי הפרופיל תומך בסוגי עומסי העבודה הבאים של Spark:
Spark,PySpark,SparkSqlו-SparkR. - עומס עבודה צריך לפעול יותר משלוש דקות כדי ש-Profiler יוכל לאסוף ולהעלות נתונים לפרויקט.
- אפשר לשנות את אפשרויות הפרופיל שנשלחו עם עומס עבודה על ידי יצירת
SparkConfוהגדרתextraJavaOptionsבקוד. שימו לב: הגדרת מאפייניextraJavaOptionsכששולחים את עומס העבודה לא מבטלת את אפשרויות הפרופיל שנשלחו עם עומס העבודה.
דוגמה לאפשרויות של כלי הפרופילר שמשמשות לשליחת אצווה מופיעה במאמר בנושא דוגמה לעומס עבודה של אצווה ב-PySpark.
הפעלת יצירת פרופיל
כדי להפעיל פרופילים בעומס עבודה:
- מפעילים את הכלי ליצירת פרופילים.
- אם אתם משתמשים בחשבון שירות מותאם אישית למכונה וירטואלית, צריך להקצות את התפקיד Cloud Profiler Agent לחשבון השירות המותאם אישית למכונה הווירטואלית. התפקיד הזה מכיל את ההרשאות הנדרשות ל-Profiler.
- מגדירים מאפייני פרופיל כששולחים עומס עבודה של אצווה או כשיוצרים תבנית סשן.
דוגמה לעומס עבודה באצווה ב-PySpark
בדוגמה הבאה נעשה שימוש ב-CLI של gcloud כדי לשלוח עומס עבודה של PySpark batch עם פרופיל מופעל.
gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \ --region=REGION \ --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \ -- other args
נוצרים שני פרופילים:
-
PROFILE_NAME-driverto profile spark driver tasks PROFILE_NAME-executorכדי ליצור פרופיל של משימות של Spark Executor
צפייה בפרופילים
אפשר לראות את הפרופילים מתוך Profiler במסוף Google Cloud .