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 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.extraJavaOptionsyspark.executor.extraJavaOptions - MapReduce:
mapreduce.task.profiley 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 Dataproc Spark y Hadoop.
Crea un clúster de Dataproc con ámbitos de cuenta de servicio definidos en
monitoringpara permitir que el clúster se comunique con el servicio de creación de perfiles.Si usas una cuenta de servicio de VM personalizada, otorga el rol Agente de Cloud Profiler a la cuenta de servicio de VM personalizada. Este rol contiene los permisos de servicio de creación de perfiles necesarios.
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.enableHabilitar la creación de perfiles del trabajo trueofalseObligatorio falsecloud.profiler.nameNombre usado para crear el perfil en el servicio Profiler. profile-name Opcional UUID de la tarea de Dataproc cloud.profiler.service.versionCadena 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.mapsIntervalo 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.reducesIntervalo numérico de las tareas de reducción para crear un 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
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-driverpara crear perfiles de tareas de controladores de Sparkprofiler_name-executorpara crear un perfil de las tareas del ejecutor 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
Envío de tareas de Hadoop (mapreduce de teragen) con un 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
Consulta los perfiles de Profiler en la consola de Google Cloud .
Siguientes pasos
- Consulta la documentación de Monitoring.
- Consulta la documentación de registro.
- Descubre Google Cloud Observability