Cloud Profiler

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 y spark.executor.extraJavaOptions
  • MapReduce: mapreduce.task.profile y otras propiedades de mapreduce.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.

  1. Habilita el generador de perfiles.

  2. 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.

  3. 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

  1. 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 o false 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:

  1. profiler_name-driver para crear perfiles de tareas de controladores de Spark
  2. profiler_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