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 de carga de trabalho aplicando automaticamente as configurações do Spark a uma carga de trabalho do Spark recorrente com base nas práticas recomendadas de otimização do Spark e em uma análise das execuções da carga de trabalho.
Inscreva-se no ajuste automático sem servidor do Dataproc
Para se inscrever para o acesso à versão de pré-lançamento do ajuste automático do Dataproc sem servidor descrita nesta página, preencha e envie o formulário de inscrição do Gemini in BigQuery Preview. Depois que o formulário for aprovado, os projetos listados nele terão acesso a recursos de pré-lançamento.
Benefícios
O ajuste automático sem servidor do Dataproc oferece os seguintes benefícios:
- Melhor desempenho: ajuste de otimização para aumentar 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 e às próximas execuções 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 cargas de trabalho para otimização.
- Não há suporte para a redução de memória.
- O ajuste automático não é aplicado retroativamente a cargas de trabalho em execução, apenas a 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, chamadas de coortes.
O nome da coorte especificado ao enviar uma carga de trabalho
identifica a carga 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 como parte
de uma carga de trabalho recorrente. Por exemplo, especifique TPCH-Query1
como o nome da coorte para 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 sem servidor do Dataproc à sua carga de trabalho, selecione um ou mais dos seguintes cenários de ajuste automático:
OOM
: ajusta automaticamente a alocação de memória do Spark para corrigir uma carga de trabalho que falhou anteriormente devido a um erro de falta de memória (OOM, na sigla em inglês).MEMORY
: ajusta automaticamente a alocação de memória do Spark para prever e evitar possíveis erros de falta de memória de carga de trabalho.SCALING
: ajuste automaticamente as configurações de escalonamento automático do Spark.BHJ
: ajuste automaticamente as configurações do Spark para otimizar o desempenho da junção de transmissão SQL.
Preços
O ajuste automático sem servidor do Dataproc é oferecido durante o pré-lançamento sem custo extra. Os preços padrão do Dataproc sem servidor são aplicáveis.
Disponibilidade regional
Use o ajuste automático do Dataproc sem servidor com lotes enviados nas regiões disponíveis do Compute Engine.
Usar o ajuste automático sem servidor do Dataproc
É 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 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 as etapas a seguir:
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 sua 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 próximas cargas de trabalho enviadas
com esse nome de coorte. Por exemplo, especifique
TPCH-Query1
como o nome da coorte para 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 para
otimizar a carga de trabalho, por exemplo,
OOM
,MEMORY
eSCALING
. É possível alterar 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 próximas cargas de trabalho enviadas
com esse nome de coorte. Por exemplo, especifique
Preencha as 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 do 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 próximas cargas de trabalho enviadas
com o nome da coorte. Por exemplo, especifique
TPCH Query 1
como o nome da coorte para 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 que serão 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 próximas cargas de trabalho enviadas com esse nome de coorte. Por exemplo, especifiqueTPCH-Query1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta diária TPC-H.AutotuningConfig.scenarios
: um ou mais cenários de ajuste automático que serão usados para otimizar a carga de trabalho, comoOOM
,MEMORY
eSCALING
. É possível alterar a lista de cenários a cada envio de coorte em lote.
Exemplo:
...
runtimeConfig:
cohort: TPCH-Query1
autotuningConfig:
scenarios:
- OOM
- MEMORY
- SCALING
...
Conferir mudanças de ajuste automático
Para visualizar as alterações do ajuste automático sem servidor do Dataproc 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 ver as alterações de ajuste automático mais recentes que foram 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.