Cloud Profiler

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:

  • Profiler solo admite los tipos de trabajos de Hadoop y Spark de Managed Service para Apache Spark (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.

Managed Service para Apache Spark reconoce cloud.profiler.enable y las otras propiedades de cloud.profiler.* (consulta Opciones de Profiler) y, luego, agrega las opciones de JVM de Profiler pertinentes a las siguientes opciones de configuración:

  • Spark: spark.driver.extraJavaOptions y spark.executor.extraJavaOptions
  • MapReduce: mapreduce.task.profile y otras propiedades de mapreduce.task.profile.*

Habilita la generación de perfiles

Completa los siguientes pasos para habilitar y usar Profiler en tus trabajos de Managed Service para Apache Spark y Hadoop.

  1. Habilita el generador de perfiles.

  2. Crea un clúster de Managed Service para Apache Spark con permisos de cuenta de servicio establecidos en monitoring para permitir que el clúster se comunique con el servicio de Profiler.

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

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

Envía un trabajo de Managed Service para Apache Spark con opciones de Profiler

  1. Envía un trabajo de Spark o Hadoop con una o más de las siguientes opciones de Profiler:
    Opción Descripción Valor Obligatorio/opcional Default Notas
    cloud.profiler.enable Habilita la generación de perfiles del trabajo. true o false 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 Managed Service para Apache Spark
    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 Managed Service para Apache Spark
    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:

  1. profiler_name-driver para generar un perfil de las tareas del controlador Spark
  2. profiler_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

Consulta los perfiles del generador de perfiles en la consola de Google Cloud .

Qué sigue