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, פועלים לפי השלבים הבאים.
יוצרים אשכול Dataproc עם היקפי חשבון שירות שמוגדרים לערך
monitoringכדי לאפשר לאשכול לתקשר עם שירות הפרופיל.אם אתם משתמשים בחשבון שירות מותאם אישית של מכונה וירטואלית, צריך להעניק את התפקיד Cloud Profiler Agent לחשבון השירות המותאם אישית של המכונה הווירטואלית. התפקיד הזה מכיל את ההרשאות הנדרשות לשירות פרופיל.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
שליחת משימת Dataproc עם אפשרויות של Profiler
- שליחת עבודת Dataproc Spark או Hadoop
עם אחת או יותר מהאפשרויות הבאות של Profiler:
אפשרות תיאור ערך נדרש/אופציונלי ברירת מחדל הערות cloud.profiler.enableהפעלת יצירת פרופיל של המשרה trueאוfalseחובה falsecloud.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
ייווצרו שני פרופילים:
-
profiler_name-driverto profile spark driver tasks 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 .
מה השלב הבא
- לעיון במאמרי העזרה בנושא Monitoring
- מידע נוסף על רישום ביומן
- מידע נוסף על Google Cloud Observability