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 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 Dataproc Spark y Hadoop.

  1. Habilita el Profiler.

  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, 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

  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 Intervalo 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:

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