Cloud Profiler recopila y, además, informa de forma continua el uso de CPU de la aplicación y la información de asignación de memoria.
Requisitos:
El generador de perfiles solo admite tipos de trabajo de Hadoop y Spark de Dataproc (Spark, PySpark, SparkSql y SparkR).
Los trabajos deben ejecutarse más de 3 minutos para permitir que Profiler recopile y suba datos a tu proyecto.
Dataproc reconoce cloud.profiler.enable
y las otras propiedades de cloud.profiler.*
(consulta Opciones de generador de perfiles) y, luego, agrega las opciones relevantes de JVM del generador de perfiles a los siguientes parámetros de configuración:
- Spark:
spark.driver.extraJavaOptions
yspark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
y otras propiedades demapreduce.task.profile.*
Habilita la generación de perfiles
Completa los siguientes pasos para habilitar y usar un generador de perfiles en tus trabajos de Spark y Hadoop de Dataproc.
Crea un clúster de Dataproc con alcances de cuenta de servicio establecidos en
monitoring
para permitir que el clúster se comunique con el servicio del generador de perfiles.Si usas una cuenta de servicio de VM personalizada, otorga el rol de agente de Cloud Profiler a la cuenta de servicio de VM personalizada. Este rol contiene los permisos necesarios del servicio de generador de perfiles.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Envía un trabajo de Dataproc con las opciones del generador de perfiles
- Envía un trabajo de Hadoop o Spark de Dataproc con una o más de las siguientes opciones del generador de perfiles:
Opción Descripción Valor Obligatorio/opcional Default Notas cloud.profiler.enable
Habilita la generación de perfiles del trabajo. true
ofalse
Obligatorio false
cloud.profiler.name
Nombre que se usó para crear el perfil en el servicio del generador de perfiles profile-name Opcional UUID del trabajo de Dataproc cloud.profiler.service.version
Una string proporcionada por el usuario para identificar y distinguir los resultados del generador de perfiles. Profiler Service Version Opcional UUID del trabajo de Dataproc mapreduce.task.profile.maps
Rango numérico de tareas de mapa para generar perfiles (por ejemplo: hasta 100, se especifica "0-100"). number range Opcional 0-10000 Solo se aplica a trabajos MapReduce de Hadoop mapreduce.task.profile.reduces
Rango numérico de tareas de reductor para crear perfiles (por ejemplo: hasta 100, se especifica "0-100"). number range Opcional 0-10000 Solo se aplica a trabajos MapReduce de Hadoop
Ejemplo de PySpark
Google Cloud CLI
Ejemplo de envío de un trabajo de PySpark con la generació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 generar un perfil de las tareas del controlador Sparkprofiler_name-executor
para generar perfiles de tareas del ejecutor de spark
Por ejemplo, si profiler_name
es "spark_word_count_job", se crean los perfiles spark_word_count_job-driver
y spark_word_count_job-executor
.
Ejemplo de Hadoop
gcloud CLI
Trabajo de Hadoop (teragen de MapReduce) con ejemplo de 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
Ve los perfiles del generador de perfiles en la consola de Google Cloud.
Qué sigue
- Consulta la documentación de Monitoring
- Consulta la documentación de Logging.
- Explora Google Cloud Observability