Cloud Profiler

O Cloud Profiler recolhe e comunica continuamente informações sobre a utilização da CPU da aplicação e a atribuição de memória.

Requisitos:

  • O Profiler suporta apenas tipos de tarefas do Dataproc Hadoop e Spark (Spark, PySpark, SparkSql e SparkR).

  • As tarefas têm de ser executadas durante mais de 3 minutos para permitir que o Profiler recolha e carregue dados para o seu projeto.

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

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

Ative a criação de perfis

Conclua os passos seguintes para ativar e usar o Profiler nos seus trabalhos do Dataproc Spark e Hadoop.

  1. Ative o Profiler.

  2. Crie um cluster do Dataproc com os âmbitos da conta de serviço definidos como monitoring para permitir que o cluster comunique com o serviço do criador de perfis.

  3. Se estiver a usar uma conta de serviço de VM personalizada, conceda a função agente do Cloud Profiler à conta de serviço de VM personalizada. Esta função contém as autorizações necessárias do serviço Profiler.

gcloud

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

Envie uma tarefa do Dataproc com opções do Profiler

  1. Envie uma tarefa do Dataproc Spark ou Hadoop com uma ou mais das seguintes opções do Profiler:
    Opção Descrição Valor Obrigatório/opcional Predefinição Notas
    cloud.profiler.enable Ative a criação de perfis do trabalho true ou false Obrigatória false
    cloud.profiler.name Nome usado para criar o perfil no serviço Profiler profile-name Opcional UUID da tarefa do Dataproc
    cloud.profiler.service.version Uma string fornecida pelo utilizador para identificar e distinguir os resultados do criador de perfis. Profiler Service Version Opcional UUID da tarefa do Dataproc
    mapreduce.task.profile.maps Intervalo numérico de tarefas de mapas para o perfil (exemplo: para até 100, especifique "0-100") number range Opcional 0-10000 Aplica-se apenas a tarefas MapReduce do Hadoop
    mapreduce.task.profile.reduces Intervalo numérico de tarefas de redução para criar perfis (exemplo: para até 100, especifique "0-100") number range Opcional 0-10000 Aplica-se apenas a tarefas MapReduce do Hadoop

Exemplo do PySpark

CLI do Google Cloud

Exemplo de envio de tarefa do PySpark com criação de perfis:

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

São criados dois perfis:

  1. profiler_name-driver para criar perfis de tarefas de condutor do Spark
  2. profiler_name-executor para criar perfis de tarefas do executor do Spark

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

Exemplo do Hadoop

CLI gcloud

Envio de tarefas Hadoop (teragen mapreduce) com exemplo de criação de perfis:

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 perfis do Profiler na consola Google Cloud .

O que se segue