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

Este documento descreve como criar o perfil de uso de recursos do Google Cloud Serverless para Apache 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 a criação de perfil ao enviar um lote ou criar uma carga de trabalho de sessão usando as propriedades de criação de perfil listadas na tabela a seguir. Google Cloud O Serverless para Apache Spark anexa opções de JVM relacionadas à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 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. A definição de propriedades extraJavaOptions quando a carga de trabalho é enviada não substitui as opções de criação de perfil enviadas com a carga de trabalho.

Para 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

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 à conta de serviço de VM personalizada. 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 visualizar perfis do Profiler no Google Cloud console.

A seguir