Criar um perfil de uso de recursos do Dataproc Serverless para Spark

Este documento descreve como criar um perfil de uso de recursos do Dataproc Serverless para Spark. O Cloud Profiler coleta e relata continuamente o uso da CPU do aplicativo e as informações de alocação de memória. É possível ativar o perfil quando você envia um lote ou cria uma carga de trabalho de sessão usando as propriedades de perfil listadas na tabela a seguir. O Dataproc sem servidor para Spark anexa 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 está definido como batch ou session
  • WORKLOAD_ID está definido como batchId ou sessionId

Observações:

  • O Dataproc sem servidor para Spark define a versão do perfil como o UUID do lote ou o UUID da sessão.
  • O Profiler oferece suporte aos 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 código. Definir propriedades extraJavaOptions quando a carga de trabalho é enviada não substitui as opções de perfil enviadas com a carga de trabalho.

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

Ativar criação de perfil

Siga estas etapas para ativar o 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 à conta de serviço de VM personalizada. Esse papel contém as permissões necessárias do Perfilador.
  3. Defina as propriedades de perfil quando você 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 de lote do PySpark com o perfil ativado.

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 do Google Cloud.

A seguir