Otimizar uma carga de trabalho do Spark para desempenho e resiliência pode ser um desafio devido ao número de opções de configuração do Spark e à dificuldade de avaliar como essas opções afetam uma carga de trabalho. O ajuste automático do Dataproc sem servidor oferece uma alternativa à configuração manual da carga de trabalho aplicando automaticamente as configurações do Spark a uma carga de trabalho recorrente dele com base nas práticas recomendadas de otimização do Spark e em uma análise das execuções de carga de trabalho.
Inscreva-se para o ajuste automático do Dataproc sem servidor
Para se inscrever para acessar a versão de pré-lançamento do ajuste automático sem servidor do Dataproc sem servidor descrita nesta página, preencha e envie o formulário de inscrição do Gemini na pré-visualização do BigQuery. Após a aprovação do formulário, os projetos listados nele terão acesso aos recursos de prévia.
Benefícios
O ajuste automático do Dataproc sem servidor oferece os seguintes benefícios:
- Performance aprimorada: ajuste de otimização para melhorar o desempenho.
- Otimização mais rápida: configuração automática para evitar testes de configuração manuais demorados.
- Maior resiliência: alocação automática de memória para evitar falhas relacionadas à memória.
Limitações
O ajuste automático do Dataproc sem servidor tem as seguintes limitações:
- O ajuste automático é calculado e aplicado à segunda execução e às execuções subsequentes de uma carga de trabalho. A primeira execução de uma carga de trabalho recorrente não é ajustada automaticamente porque o ajuste automático do Dataproc sem servidor usa o histórico de carga de trabalho para otimização.
- Não há suporte para redução de memória.
- O ajuste automático não é aplicado de maneira retroativa às cargas de trabalho em execução, apenas às coortes de carga de trabalho recém-enviadas.
Coortes de ajuste automático
O ajuste automático é aplicado a execuções recorrentes de uma carga de trabalho em lote, chamada de coortes.
O nome da coorte especificado ao enviar uma carga de trabalho a identifica como uma das execuções sucessivas da carga de trabalho recorrente.
Recomendamos que você use nomes de coorte que descrevam o tipo de
carga de trabalho ou que ajudem a identificar as execuções de uma carga de trabalho como parte
de uma carga de trabalho recorrente. Por exemplo, especifique TPCH-Query1
como o nome da coorte
de uma carga de trabalho programada que executa uma consulta TPC-H diária.
Cenários de ajuste automático
Para aplicar o ajuste automático do Dataproc sem servidor à carga de trabalho, selecione um ou mais dos seguintes cenários de ajuste automático:
MEMORY
: ajusta automaticamente a alocação de memória do Spark para prever e evitar possíveis erros de falta de memória na carga de trabalho. Corrigir uma carga de trabalho com falha anteriormente devido a um erro de falta de memória (OOM, na sigla em inglês).SCALING
: ajustar automaticamente as configurações de escalonamento automático do Spark.BHJ
: ajustar automaticamente as configurações do Spark para otimizar o desempenho da junção de transmissão SQL.
Preços
O ajuste automático do Dataproc sem servidor é oferecido durante o pré-lançamento sem custo adicional. São aplicáveis os preços padrão do Dataproc sem servidor.
Disponibilidade regional
É possível usar o ajuste automático do Dataproc sem servidor com lotes que são enviados nas regiões disponíveis do Compute Engine.
Usar o ajuste automático do Dataproc sem servidor
É possível ativar o ajuste automático do Dataproc sem servidor em uma carga de trabalho usando o console do Google Cloud, a Google Cloud CLI ou a API Dataproc.
Console
Para ativar o ajuste automático do Dataproc sem servidor em cada envio de uma carga de trabalho em lote recorrente, siga estas etapas:
No console do Google Cloud, acesse a página Lotes do Dataproc.
Para criar uma carga de trabalho em lote, clique em Criar.
Na seção Contêiner, preencha os seguintes campos da carga de trabalho do Spark:
- Coorte: o nome da coorte, que identifica o lote como uma de uma série de cargas de trabalho recorrentes.
O ajuste automático é aplicado à segunda carga de trabalho e às subsequentes enviadas
com esse nome de coorte. Por exemplo, especifique
TPCH-Query1
como o nome da coorte de uma carga de trabalho programada que executa uma consulta TPC-H diária. - Cenários de ajuste automático: um ou mais
cenários de ajuste automático a serem usados para
otimizar a carga de trabalho, por exemplo,
BHJ
,MEMORY
eSCALING
. É possível mudar a seleção de cenário a cada envio de coorte em lote.
- Coorte: o nome da coorte, que identifica o lote como uma de uma série de cargas de trabalho recorrentes.
O ajuste automático é aplicado à segunda carga de trabalho e às subsequentes enviadas
com esse nome de coorte. Por exemplo, especifique
Preencha outras seções da página Criar lote conforme necessário e clique em Enviar. Para mais informações sobre esses campos, consulte Enviar uma carga de trabalho em lote.
gcloud
Para ativar o ajuste automático do Dataproc sem servidor em cada envio
de uma carga de trabalho em lote recorrente, execute o seguinte comando
gcloud dataproc batches submit
da CLI gcloud
localmente em uma janela de terminal ou no
Cloud Shell.
gcloud dataproc batches submit COMMAND \ --region=REGION \ --cohort=COHORT \ --autotuning-scenarios=SCENARIOS \ other arguments ...
Substitua:
- COMMAND: o tipo de carga de trabalho do Spark, como
Spark
,PySpark
,Spark-Sql
ouSpark-R
. - REGION: a região em que a carga de trabalho será executada.
- COHORT: o nome da coorte, que identifica o lote como uma de uma série de cargas de trabalho recorrentes.
O ajuste automático é aplicado à segunda carga de trabalho e às subsequentes enviadas
com esse nome de coorte. Por exemplo, especifique
TPCH Query 1
como o nome da coorte de uma carga de trabalho programada que executa uma consulta TPC-H diária. - SCENARIOS: um ou mais
cenários de ajuste automático separados por vírgulas a serem usados para
otimizar a carga de trabalho. Por exemplo,
--autotuning-scenarios=OOM,MEMORY,SCALING
. É possível alterar a lista de cenários a cada envio de coorte em lote.
API
Para ativar o ajuste automático do Dataproc sem servidor em cada envio de uma carga de trabalho em lote recorrente, envie uma solicitação batches.create que inclua os seguintes campos:
RuntimeConfig.cohort
: o nome da coorte, que identifica o lote como uma de uma série de cargas de trabalho recorrentes. O ajuste automático é aplicado à segunda carga de trabalho e às subsequentes enviadas com esse nome de coorte. Por exemplo, especifiqueTPCH-Query1
como o nome da coorte de uma carga de trabalho programada que executa uma consulta TPC-H diária.AutotuningConfig.scenarios
: um ou mais cenários de ajuste automático a serem usados para otimizar a carga de trabalho, por exemplo,BHJ
,MEMORY
eSCALING
. É possível alterar a lista de cenários a cada envio de coorte em lote.
Exemplo:
...
runtimeConfig:
cohort: TPCH-Query1
autotuningConfig:
scenarios:
- BHJ
- MEMORY
- SCALING
...
Conferir mudanças no ajuste automático
Para visualizar as alterações no ajuste automático do Dataproc sem servidor em uma carga de trabalho em lote,
execute o
comando
gcloud dataproc batches describe
.
Exemplo: a saída gcloud dataproc batches describe
é semelhante a esta:
...
runtimeInfo:
propertiesInfo:
# Properties set by autotuning.
autotuningProperties
spark.driver.memory:
annotation: Driver OOM was detected
value: 11520m
spark.driver.memoryOverhead:
annotation: Driver OOM was detected
value: 4608m
# Old overwritten properties.
userProperties
...
Também é possível visualizar as alterações mais recentes de ajuste automático aplicadas a uma carga de trabalho em execução, concluída ou com falha na página Detalhes do lote no console do Google Cloud, na guia Investigar.