Cloud Profiler erfasst und meldet kontinuierlich Informationen zur CPU-Auslastung und Speicherzuweisung der Anwendung.
Voraussetzungen:
Profiler unterstützt nur Jobtypen von Dataproc Hadoop und Spark (Spark, PySpark, SparkSql und SparkR).
Jobs müssen länger als 3 Minuten ausgeführt werden, damit Profiler Daten zum Projekt erfassen und hochladen kann.
Dataproc erkennt cloud.profiler.enable
und die anderen cloud.profiler.*
-Attribute (siehe Profileroptionen) und hängt dann die relevanten 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 Spark- und Hadoop-Jobs zu aktivieren und zu verwenden.
Erstellen Sie einen Dataproc-Cluster, bei dem Dienstkontobereiche auf
monitoring
gesetzt sind, damit der Cluster mit dem Profiler-Dienst kommunizieren kann.Wenn Sie ein benutzerdefiniertes VM-Dienstkonto verwenden, gewähren Sie dem benutzerdefinierten VM-Dienstkonto die Rolle Cloud Profiler Agent. Diese Rolle enthält die erforderlichen Berechtigungen für den Profiler-Dienst.
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 zum Erstellen des Profils für den Profiler-Dienst 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
Google Cloud CLI
PySpark-Job mit Profilerstellung senden – Beispiel:
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
Es werden zwei Profile 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-CLI
Hadoop-Job (teragen mapreduce) mit Profilerstellung senden – Beispiel:
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
Profile anzeigen
Sehen Sie sich Profile im Profiler in der Google Cloud Console an.