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: |
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
eSparkR
. - 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 definindoextraJavaOptions
no código. Definir propriedadesextraJavaOptions
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:
- Ative o criador de perfil.
- 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.
- 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 SparkPROFILE_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.