Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O recurso Autoscale do pool do Apache Spark for Azure Synapse Analytics dimensiona automaticamente o número de nós em uma instância de cluster para cima e para baixo. Durante a criação de um novo pool do Apache Spark for Azure Synapse Analytics, um número mínimo e máximo de nós, até 200 nós, pode ser definido quando o Autoscale é selecionado. O Dimensionamento Automático monitoriza os requisitos de recursos da carga e aumenta e reduz verticalmente o número de nós. Não há nenhum custo extra para este recurso.
Monitoramento de métricas
O dimensionamento automático monitora continuamente a instância do Spark e coleta as seguintes métricas:
| Métrico | Description |
|---|---|
| Total de CPU pendente | O número total de núcleos necessários para iniciar a execução de todos os trabalhos pendentes. |
| Total de memória pendente | A memória total (em MB) necessária para iniciar a execução de todos os trabalhos pendentes. |
| CPU livre total | A soma de todos os núcleos não utilizados nos nós ativos. |
| Memória livre total | A soma da memória não utilizada (em MB) nos nós ativos. |
| Memória usada por nó | A carga em um nó. Um nó no qual 10 GB de memória é usado, é considerado sob mais carga do que um trabalhador com 2 GB de memória usada. |
As métricas acima são verificadas a cada 30 segundos. O autoscale toma decisões de escalonamento para cima e para baixo com base nessas métricas.
Condições de escala baseadas em carga
Quando as seguintes condições forem detetadas, o Autoscale emitirá uma solicitação de escala:
| Aumento vertical | Redução de escala |
|---|---|
| O total de CPU pendente é maior do que o total de CPU livre por mais de 1 minuto. | O total de CPU pendente é inferior ao total de CPU livre por mais de 2 minutos. |
| O total de memória pendente é maior do que o total de memória livre por mais de 1 minuto. | A memória total pendente é inferior à memória livre total por mais de 2 minutos. |
Para escalonamento, o serviço Azure Synapse Autoscale calcula quantos novos nós são necessários para atender aos requisitos atuais de CPU e memória e, em seguida, emite uma solicitação de expansão para adicionar o número necessário de nós.
Para redução de escala, com base no número de executores, mestres de aplicativos por nó, CPU atual e requisitos de memória, o Autoscale emite uma solicitação para remover alguns nós. O serviço também deteta quais os nós são candidatos para remoção com base na execução atual do trabalho. A operação de redução de escala primeiro descomissiona os nós e, em seguida, os remove do cluster.
Observação
Uma observação sobre como atualizar e forçar a aplicação da configuração de dimensionamento automático a um pool do Spark existente. Se Forçar nova configuração no portal do Azure ou ForceApplySetting no PowerShell estiver habilitado, todas as sessões do Spark existentes serão encerradas e as alterações de configuração serão aplicadas imediatamente. Se essa opção não estiver selecionada, a configuração será aplicada às novas sessões do Spark e as sessões existentes não serão encerradas.
Introdução
Crie um pool do Apache Spark sem servidor com Autoscaling
Para habilitar o recurso Dimensionamento automático, conclua as seguintes etapas como parte do processo normal de criação do pool:
Na guia Noções básicas , marque a caixa de seleção Habilitar dimensionamento automático .
Insira os valores desejados para as seguintes propriedades:
- Número mínimo de nós.
- Número máximo de nós.
O número inicial de nós será o mínimo. Esse valor define o tamanho inicial da instância quando ela é criada. O número mínimo de nós não pode ser inferior a três.
Opcionalmente, você pode habilitar a alocação dinâmica de executores em cenários em que os requisitos do executor são muito diferentes entre os estágios de um Spark Job ou o volume de dados processados flutua com o tempo. Ao habilitar a Alocação Dinâmica de Executores, podemos utilizar a capacidade conforme necessário.
Ao habilitar a alocação dinâmica, ele permite que o trabalho dimensione o número de executores dentro do número mínimo e máximo de executores especificados.
Apache Spark permite a configuração de alocação dinâmica de executores através de código como abaixo:
%%configure -f
{
"conf" : {
"spark.dynamicAllocation.maxExecutors" : "6",
"spark.dynamicAllocation.enabled": "true",
"spark.dynamicAllocation.minExecutors": "2"
}
}
Os padrões especificados através do código substituem os valores definidos através da interface do usuário.
Neste exemplo, se o seu trabalho requer apenas dois executores, ele usa apenas dois executores. Quando o trabalho exigir mais, ele será dimensionado para até seis executores (um motorista, seis executores). Quando o trabalho não precisa dos executores, então ele descomissionará os executores. Caso não precise do nó, ele liberará o nó.
Observação
O maxExecutors reservará o número de executores configurados. Considerando o exemplo, mesmo que você use apenas 2, ele reservará 6.
Assim, ao habilitar a alocação dinâmica, os executores aumentam ou diminuem a escala com base na utilização dos executores. Isso garante que os Executores sejam provisionados de acordo com as necessidades do trabalho que está sendo executado.
Melhores práticas
Considere a latência das operações de aumento ou redução de escala
Pode levar de 1 a 5 minutos para que uma operação de dimensionamento seja concluída.
Prepare-se para reduzir a escala
Durante o processo de redução da instância, o Autoscale colocará os nós em estado de desativação para que nenhum novo executor possa ser iniciado nesse nó.
Os trabalhos em execução continuarão a ser executados e concluídos. Os trabalhos pendentes aguardarão para serem agendados normalmente, com menos nós disponíveis.
Observação
Por padrão, spark.yarn.executor.decommission.enabled é definido como true, permitindo o desligamento automático de nós subutilizados para otimizar a eficiência de computação. Se for preferível uma redução de escala menos agressiva, essa configuração pode ser definida como falso.
Próximos passos
Guia de início rápido para configurar um novo pool do Spark Criar um pool do Spark