Cloud Profiler

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

דרישות:

  • ‫Profiler תומך רק בסוגי משימות של Hadoop ו-Spark (‏Spark,‏ PySpark,‏ SparkSql ו-SparkR) ב-Managed Service for Apache Spark.

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

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

  • ניצוץ: spark.driver.extraJavaOptions ו-spark.executor.extraJavaOptions
  • MapReduce: ‏ mapreduce.task.profile ועוד mapreduce.task.profile.* נכסים

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

כדי להפעיל את הכלי Profiler ולהשתמש בו במשימות שלכם ב-Managed Service for Apache Spark וב-Hadoop, צריך לבצע את השלבים הבאים.

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

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

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

gcloud

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

שליחת עבודה של Managed Service for Apache Spark עם אפשרויות של Profiler

  1. שליחת משימת Spark או Hadoop עם אחת או יותר מהאפשרויות הבאות של כלי הפרופיל:
    אפשרות תיאור ערך נדרש/אופציונלי ברירת מחדל הערות
    cloud.profiler.enable הפעלת יצירת פרופיל של המשרה true או false חובה false
    cloud.profiler.name השם שמשמש ליצירת פרופיל בשירות Profiler profile-name אופציונלי מזהה UUID של משימה ב-Managed Service for Apache Spark
    cloud.profiler.service.version מחרוזת שסופקה על ידי המשתמש כדי לזהות ולהבחין בין תוצאות הפרופילר. Profiler Service Version אופציונלי מזהה UUID של משימה ב-Managed Service for Apache Spark
    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 רלוונטי רק למשימות של מיפוי וצמצום ב-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 .

מה השלב הבא