Cloud Profiler erfasst und meldet kontinuierlich die CPU-Auslastung und die Arbeitsspeicherzuweisung der Anwendung.
Voraussetzungen:
Profiler unterstützt nur Dataproc Hadoop- und Spark-Jobtypen (Spark, PySpark, SparkSql und SparkR).
Jobs müssen länger als drei Minuten dauern, damit Profiler Daten erfassen und in Ihr Projekt hochladen kann.
Dataproc erkennt cloud.profiler.enable
und die anderen cloud.profiler.*
-Attribute (siehe Profiler-Optionen) und hängt die entsprechenden Profiler-JVM-Optionen an die folgenden Konfigurationen an:
- Spark:
spark.driver.extraJavaOptions
undspark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
und anderemapreduce.task.profile.*
-Attribute
Profiling aktivieren
Führen Sie die folgenden Schritte aus, um den Profiler für Ihre Dataproc Spark- und Hadoop-Jobs zu aktivieren und zu verwenden.
Erstellen Sie einen Dataproc-Cluster und legen Sie für Dienstkontobereiche die Option
monitoring
fest, damit der Cluster mit dem Profiler-Dienst kommunizieren kann.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Dataproc-Job mit Profiler-Optionen senden
- Dataproc Spark- oder Hadoop-Job mit einer oder mehreren der folgenden Profiler-Optionen senden:
Option Beschreibung Wert Erforderlich/Optional Default Hinweise cloud.profiler.enable
Profilerstellung für den Job aktivieren true
oderfalse
Erforderlich false
cloud.profiler.name
Name, der zum Erstellen des Profils im Profiler-Dienst verwendet wurde profile-name Optional Dataproc-Job-UUID cloud.profiler.service.version
Ein vom Nutzer bereitgestellter String zur Identifizierung und Unterscheidung von Profiler-Ergebnissen. Profiler Service Version Optional Dataproc-Job-UUID mapreduce.task.profile.maps
Numerischer Bereich von Mapper-Aufgaben für die Profilerstellung (Beispiel: Geben Sie für bis zu 100 "0-100" an). number range Optional 0-10000 Gilt nur für Hadoop-Mapreduce-Jobs mapreduce.task.profile.reduces
Numerischer Bereich von Reducer-Aufgaben für die Profilerstellung (Beispiel: Geben Sie für bis zu 100 "0-100" an). number range Optional 0-10000 Gilt nur für Hadoop-Mapreduce-Jobs
PySpark-Beispiel
gcloud
PySpark-Job mit Profilerstellung senden – Beispiel:
gcloud dataproc jobs submit pyspark python-job-file \ --cluster=cluster-name \ --region=region \ --jars=jar-file \ --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \ -- job args
Zwei Profile werden erstellt:
profiler_name-driver
zur Profilerstellung für Spark-Treiberaufgabenprofiler_name-executor
zur Profilerstellung der Spark Executor-Aufgaben
Beispiel: Wenn profiler_name
"spark_word_count_job" ist, werden die Profile spark_word_count_job-driver
und spark_word_count_job-executor
erstellt.
Hadoop-Beispiel
gcloud
Hadoop-Job (teragen mapreduce) mit Profilerstellung senden – Beispiel:
gcloud dataproc jobs submit hadoop \ --cluster=cluster-name \ --region=region \ --jars=jar-file \ --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \ -- teragen 100000 gs://bucket-name
Profile anzeigen
Sehen Sie sich Profile im Profiler in der Cloud Console an.