Esta página se ha traducido con Cloud Translation API.
Switch to English

Cloud Profiler

Cloud Profiler recopila e informa continuamente el uso de CPU de la aplicación y la información de asignación de memoria.

Requisitos:

  • El generador de perfiles solo es compatible con los tipos de trabajo de Hadoop y Spark (Spark, PySpark, SparkSql y SparkR).

  • Los trabajos deben ejecutar más de 3 minutos para que Profiler pueda recopilar y subir datos a tu proyecto.

Dataproc reconoce cloud.profiler.enable y las otras propiedades de cloud.profiler.* (consulta las Opciones de generadores de perfiles) y, luego, agrega las opciones de JVM relevantes del generador de perfiles a las siguientes configuraciones:

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

Habilita la generación de perfiles

Completa los siguientes pasos para habilitar y usar el generador de perfiles en tus trabajos de Dataproc Spark y Hadoop.

  1. Habilita el generador de perfiles.

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

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

  1. 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 creació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 Dataproc
    cloud.profiler.service.version Una string proporcionada por el usuario para identificar y distinguir 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

gcloud

Ejemplo de envío de un trabajo de PySpark:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --jars=jar-file \
    --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 perfilar las tareas del controlador de Spark
  2. profiler_name-executor para generar perfiles de tareas de 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

Envío de trabajo de Hadoop (teragen mapreduce) con el ejemplo de la generación de perfiles:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jars=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 Cloud Console.

Qué sigue