Cloud Profiler

O Cloud Profiler coleta e relata continuamente o uso da CPU do aplicativo e as informações de alocação de memória.

Requisitos:

  • O Profiler é compatível apenas com os tipos de job do Dataproc Hadoop e Spark (Spark, PySpark, SparkSql e SparkR).

  • Os jobs precisam ser executados por mais de três minutos para permitir que o Profiler colete e faça upload de dados para seu projeto.

O Dataproc reconhece cloud.profiler.enable e as outras propriedades cloud.profiler.* (consulte Opções do criador de perfil) e, em seguida, anexa as opções relevantes da JVM do criador de perfil às seguintes configurações:

  • Spark: spark.driver.extraJavaOptions e spark.executor.extraJavaOptions
  • MapReduce: mapreduce.task.profile e outras propriedades mapreduce.task.profile.*

Ativar criação de perfil

Conclua as etapas a seguir para ativar e usar o Profiler nos jobs Spark e Hadoop do Dataproc.

  1. Ative o criador de perfil.

  2. Crie um cluster do Dataproc com escopos de conta de serviço definidos como monitoring para permitir que o cluster fale com o serviço de criação de perfil.

gcloud

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

Enviar um job do Dataproc com opções do Profiler

  1. Envie um job Spark ou Hadoop do Dataproc com uma ou mais das seguintes opções do Profiler:
    Opção Descrição Valor Obrigatório/Opcional Padrão Observações
    cloud.profiler.enable Ativar a criação de perfil do job true ou false Obrigatório false
    cloud.profiler.name Nome usado para criar perfil no serviço Profiler profile-name Opcional UUID de job do Dataproc
    cloud.profiler.service.version Uma string fornecida pelo usuário para identificar e distinguir os resultados do criador de perfil. Profiler Service Version Opcional UUID de job do Dataproc
    mapreduce.task.profile.maps Intervalo numérico de tarefas do mapa ao perfil (exemplo: para até 100, especifique "0-100") number range Opcional 0-10000 Aplica-se apenas a jobs de MapReduce do Hadoop
    mapreduce.task.profile.reduces Intervalo numérico de tarefas de redutor para criar o perfil (por exemplo: até 100, especifique "0 a 100") number range Opcional 0-10000 Aplica-se apenas a jobs de MapReduce do Hadoop

Exemplo de PySpark

gcloud

Envio de job do PySpark com exemplo de criação de perfil:

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

Dois perfis serão criados:

  1. profiler_name-driver para criar o perfil das tarefas do driver Spark
  2. profiler_name-executor para criar o perfil das tarefas do executor do spark.

Por exemplo, se o profiler_name for "spark_word_count_job", os perfis spark_word_count_job-driver e spark_word_count_job-executor serão criados.

Exemplo do Hadoop

gcloud

Envio de job do Hadoop (teragen mapreduce) com exemplo de criação de perfil:

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 perfis

Visualize os perfis do Profiler no Console do Cloud.

A seguir