Criar perfil do uso de recursos do Google Cloud Serverless para Apache Spark

Este documento descreve como criar perfis de uso de recursos do Google Cloud Serverless para Apache Spark. O Cloud Profiler coleta e informa continuamente o uso da CPU do aplicativo e as informações de alocação de memória. É possível ativar a criação de perfis ao enviar um lote ou criar uma carga de trabalho de sessão usando as propriedades de criação de perfis listadas na tabela a seguir. OGoogle Cloud Serverless para Apache Spark adiciona opções relacionadas da JVM às configurações spark.driver.extraJavaOptions e spark.executor.extraJavaOptions usadas para a carga de trabalho.

Opção Descrição Valor Padrão
dataproc.profiling.enabled Ativar a criação de perfil da carga de trabalho true ou false false
dataproc.profiling.name Nome do perfil no serviço Profiler PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID, em que:
  • WORKLOAD_TYPE é definido como batch ou session.
  • WORKLOAD_ID é definido como batchId ou sessionId

Observações:

  • O Serverless para Apache Spark define a versão do criador de perfis como o UUID do lote ou o UUID da sessão.
  • O criador de perfil é compatível com os seguintes tipos de carga de trabalho do Spark: Spark, PySpark, SparkSql e SparkR.
  • Uma carga de trabalho precisa ser executada por mais de três minutos para permitir que o Profiler colete e faça upload de dados para um projeto.
  • É possível substituir as opções de criação de perfil enviadas com uma carga de trabalho construindo um SparkConf e definindo extraJavaOptions no seu código. Definir propriedades extraJavaOptions ao enviar a carga de trabalho não substitui as opções de criação de perfil enviadas com ela.

Para um exemplo de opções de criação de perfil usadas com um envio em lote, consulte o Exemplo de carga de trabalho em lote do PySpark.

Ativar criação de perfil

Conclua as etapas a seguir para ativar a criação de perfil em uma carga de trabalho:

  1. Ative o criador de perfil.
  2. Se você estiver usando uma conta de serviço de VM personalizada, conceda o papel de agente do Cloud Profiler a essa conta. Esse papel contém as permissões necessárias do Profiler.
  3. Defina as propriedades de criação de perfil ao enviar uma carga de trabalho em lote ou criar um modelo de sessão.

Exemplo de carga de trabalho em lote do PySpark

O exemplo a seguir usa a CLI gcloud para enviar uma carga de trabalho em lote do PySpark com a criação de perfil ativada.

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

Dois perfis são criados:

  • PROFILE_NAME-driver para criar o perfil das tarefas do driver Spark
  • PROFILE_NAME-executor para criar o perfil das tarefas do executor do spark.

Ver perfis

É possível conferir perfis do Profiler no console Google Cloud .

A seguir