Cloud Profiler

Cloud Profiler אוסף ומדווח באופן רציף על נתוני השימוש במעבד (CPU) של האפליקציה ועל נתוני הקצאת הזיכרון.

דרישות:

  • הכלי Profiler תומך רק בסוגי המשימות Dataproc Hadoop ו-Spark (Spark,‏ PySpark,‏ SparkSql ו-SparkR).

  • העבודות צריכות לפעול יותר מ-3 דקות כדי ש-Profiler יוכל לאסוף נתונים ולהעלות אותם לפרויקט.

‫Dataproc מזהה את cloud.profiler.enable ואת המאפיינים האחרים של cloud.profiler.* (ראו אפשרויות של כלי הפרופיל), ואז מוסיף את האפשרויות הרלוונטיות של כלי הפרופיל של JVM להגדרות הבאות:

  • ניצוץ: spark.driver.extraJavaOptions ו-spark.executor.extraJavaOptions
  • מיפוי וצמצום: mapreduce.task.profile ומאפיינים אחרים של mapreduce.task.profile.*

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

כדי להפעיל את כלי הפרופיל ולעשות בו שימוש בעבודות של Dataproc Spark ו-Hadoop, פועלים לפי השלבים הבאים.

  1. מפעילים את הכלי ליצירת פרופילים.

  2. יוצרים אשכול Dataproc עם היקפי חשבון שירות שמוגדרים לערך monitoring כדי לאפשר לאשכול לתקשר עם שירות הפרופיל.

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

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

שליחת משימת Dataproc עם אפשרויות של Profiler

  1. שליחת עבודת Dataproc Spark או Hadoop עם אחת או יותר מהאפשרויות הבאות של Profiler:
    אפשרות תיאור ערך נדרש/אופציונלי ברירת מחדל הערות
    cloud.profiler.enable הפעלת יצירת פרופיל של המשרה true או false חובה false
    cloud.profiler.name השם שמשמש ליצירת פרופיל בשירות Profiler profile-name אופציונלי מזהה ייחודי אוניברסלי (UUID) של משימה ב-Dataproc
    cloud.profiler.service.version מחרוזת שסופקה על ידי המשתמש כדי לזהות ולהבחין בין תוצאות הפרופיל. Profiler Service Version אופציונלי מזהה ייחודי אוניברסלי (UUID) של משימה ב-Dataproc
    mapreduce.task.profile.maps טווח מספרי של משימות מיפוי לפרופיל (לדוגמה: כדי להגדיר עד 100, מציינים '0-100') number range אופציונלי 0-10000 רלוונטי רק למשימות mapreduce ב-Hadoop
    mapreduce.task.profile.reduces טווח מספרי של משימות reducer ליצירת פרופיל (לדוגמה: כדי ליצור פרופיל של עד 100 משימות, מציינים '0-100') number range אופציונלי 0-10000 רלוונטי רק למשימות mapreduce ב-Hadoop

דוגמה ל-PySpark

Google Cloud CLI

שליחת משימת PySpark עם דוגמה ליצירת פרופיל:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  job args

ייווצרו שני פרופילים:

  1. profiler_name-driver to profile spark driver tasks
  2. profiler_name-executor כדי ליצור פרופיל של משימות של Spark Executor

לדוגמה, אם profiler_name הוא spark_word_count_job, נוצרים פרופילים של spark_word_count_job-driver ושל spark_word_count_job-executor.

דוגמה ל-Hadoop

‫CLI של gcloud

דוגמה לשליחת משימת Hadoop ‏ (teragen mapreduce) עם פרופיל:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jar=jar-file \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  teragen 100000 gs://bucket-name

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

אפשר להציג פרופילים מכלי הפרופילים במסוף Google Cloud .

מה השלב הבא