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 ao enviar um lote ou criar uma carga de trabalho de sessão usando as propriedades de perfil listadas na tabela a seguir. O Dataproc Serverless para Spark anexa as opções da JVM relacionadas ao spark.driver.extraJavaOptions e spark.executor.extraJavaOptions configurações 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 Serverless para Spark define a versão do perfil como o UUID do lote ou o UUID da sessão.
  • O Profiler é 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 para coletar e fazer o upload de dados para um projeto.
  • Para substituir as opções de criação de perfil enviadas com uma carga de trabalho, construa uma SparkConf e, em seguida, 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 um exemplo de opções do criador de perfil usadas com um envio em lote, consulte a 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 um conta de serviço de VM personalizada, conceda ao Agente do Cloud Profiler para a conta de serviço da VM personalizada. Este papel contém os campos Permissões do Profiler.
  3. Defina propriedades de criação de perfil ao enviar uma carga de trabalho em lote ou crie 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

Você pode ver perfis do Profiler no console do Google Cloud.

A seguir