Cloud Profiler recoge información sobre el uso de la CPU y la asignación de memoria de las aplicaciones y genera informes al respecto de forma continua.
Requisitos:
Profiler solo admite los tipos de tareas de Dataproc Hadoop y Spark (Spark, PySpark, SparkSql y SparkR).
Los trabajos deben durar más de 3 minutos para que Profiler pueda recoger y subir datos a tu proyecto.
Dataproc reconoce cloud.profiler.enable
y las demás propiedades de cloud.profiler.*
(consulta las opciones de creación de perfiles) y, a continuación, añade las opciones de JVM de creación de perfiles pertinentes a las siguientes configuraciones:
- Spark:
spark.driver.extraJavaOptions
yspark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
y otras propiedades demapreduce.task.profile.*
Habilitar la creación de perfiles
Sigue estos pasos para habilitar y usar el generador de perfiles en tus trabajos de Spark y Hadoop de Dataproc.
Crea un clúster de Dataproc con ámbitos de cuenta de servicio definidos en
monitoring
para permitir que el clúster se comunique con el servicio de creación de perfiles.Si usas una cuenta de servicio de VM personalizada, asigna el rol Agente de Cloud Profiler a la cuenta de servicio de VM personalizada. Este rol contiene los permisos necesarios del servicio de creación de perfiles.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Enviar un trabajo de Dataproc con opciones de Profiler
- Envía una tarea de Dataproc Spark o Hadoop
con una o varias de las siguientes opciones de creación de perfil:
Opción Descripción Valor Obligatorio/Opcional Predeterminado Notas cloud.profiler.enable
Habilitar la creación de perfiles del trabajo true
ofalse
Obligatorio false
cloud.profiler.name
Nombre usado para crear el perfil en el servicio Profiler. profile-name Opcional UUID de la tarea de Dataproc cloud.profiler.service.version
Cadena proporcionada por el usuario para identificar y distinguir los resultados del perfilador. Profiler Service Version Opcional UUID de la tarea de Dataproc mapreduce.task.profile.maps
Intervalo numérico de tareas de asignación al perfil (por ejemplo, para un máximo de 100, especifica "0-100") number range Opcional 0-10000 Solo se aplica a las tareas de MapReduce de Hadoop mapreduce.task.profile.reduces
Rango numérico de las tareas de reducción que se van a crear (por ejemplo, para crear hasta 100, especifica "0-100"). number range Opcional 0-10000 Solo se aplica a las tareas de MapReduce de Hadoop
Ejemplo de PySpark
Google Cloud CLI
Ejemplo de envío de una tarea de PySpark con creación de perfiles:
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
Se crearán dos perfiles:
profiler_name-driver
para crear perfiles de tareas de controladores de Sparkprofiler_name-executor
para crear perfiles de tareas de ejecutores de Spark
Por ejemplo, si profiler_name
es "spark_word_count_job", se crearán los perfiles spark_word_count_job-driver
y spark_word_count_job-executor
.
Ejemplo de Hadoop
CLI de gcloud
Ejemplo de envío de una tarea de Hadoop (mapreduce de teragen) con creación de perfiles:
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
Ver perfiles
Consulta los perfiles desde Profiler en la consola Google Cloud .
Siguientes pasos
- Consulta la documentación de Monitoring.
- Consulta la documentación de registro.
- Descubre Google Cloud Observability