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 serviço do Hadoop e do Spark do Serviço Gerenciado para Apache 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 Serviço Gerenciado para Apache Spark reconhece cloud.profiler.enable e as outras propriedades cloud.profiler.* (consulte Opções do criador de perfil) e, em seguida, adiciona ao final 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

Siga as etapas abaixo para ativar e usar o Profiler nos jobs do Serviço Gerenciado para Apache Spark e Hadoop.

  1. Ative o criador de perfil.

  2. Crie um cluster do Serviço Gerenciado para Apache Spark com escopos de conta de serviço definidos como monitoring para permitir que o cluster se comunique com o serviço do criador de perfil.

  3. Se você estiver usando uma conta de serviço de VM personalizada, conceda o papel de Agente do Cloud Profiler a ela. Esse papel contém as permissões necessárias do serviço do criador de perfil.

gcloud

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

Enviar um job do Serviço Gerenciado para Apache Spark com as opções do Profiler

  1. Envie um job do Spark ou do Hadoop com uma ou mais das seguintes opções do Profiler:
    Opção Descrição Valor Obrigatório/Opcional Padrão Notas
    cloud.profiler.enable Ativar a criação de perfil do job true ou false Valor false
    cloud.profiler.name Nome usado para criar perfil no serviço Profiler profile-name Opcional UUID do job do Serviço Gerenciado para Apache Spark
    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 do job do Serviço Gerenciado para Apache Spark
    mapreduce.task.profile.maps Intervalo numérico de tarefas de mapa para o perfil (por 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

CLI do Google Cloud

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

CLI da 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

Veja os perfis do Profiler no console do Google Cloud .

A seguir