פרופיל של השימוש במשאבים ב-Google Cloud Serverless for Apache Spark

במאמר הזה מוסבר איך ליצור פרופיל של השימוש במשאבים ב-‎ 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, כאשר:
  • הערך של WORKLOAD_TYPE הוא batch או session
  • הערך של WORKLOAD_ID הוא batchId או sessionId

הערות:

  • ‫Serverless ל-Apache Spark מגדיר את גרסת הפרופיל לאחד מהערכים הבאים: UUID של אצווה או UUID של סשן.
  • כלי הפרופיל תומך בסוגי עומסי העבודה הבאים של Spark: Spark,‏ PySpark,‏ SparkSql ו-SparkR.
  • עומס עבודה צריך לפעול יותר משלוש דקות כדי ש-Profiler יוכל לאסוף ולהעלות נתונים לפרויקט.
  • אפשר לשנות את אפשרויות הפרופיל שנשלחו עם עומס עבודה על ידי יצירת SparkConf והגדרת extraJavaOptions בקוד. שימו לב: הגדרת מאפייני extraJavaOptions כששולחים את עומס העבודה לא מבטלת את אפשרויות הפרופיל שנשלחו עם עומס העבודה.

דוגמה לאפשרויות של כלי הפרופילר שמשמשות לשליחת אצווה מופיעה במאמר בנושא דוגמה לעומס עבודה של אצווה ב-PySpark.

הפעלת יצירת פרופיל

כדי להפעיל פרופילים בעומס עבודה:

  1. מפעילים את הכלי ליצירת פרופילים.
  2. אם אתם משתמשים בחשבון שירות מותאם אישית למכונה וירטואלית, צריך להקצות את התפקיד Cloud Profiler Agent לחשבון השירות המותאם אישית למכונה הווירטואלית. התפקיד הזה מכיל את ההרשאות הנדרשות ל-Profiler.
  3. מגדירים מאפייני פרופיל כששולחים עומס עבודה של אצווה או כשיוצרים תבנית סשן.

דוגמה לעומס עבודה באצווה ב-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-driver to profile spark driver tasks
  • PROFILE_NAME-executor כדי ליצור פרופיל של משימות של Spark Executor

צפייה בפרופילים

אפשר לראות את הפרופילים מתוך Profiler במסוף Google Cloud .

המאמרים הבאים