Configurações do Pool do Apache Spark no Azure Synapse Analytics

Um Pool do Spark é um conjunto de metadados que define os requisitos de recursos de computação e as características de comportamento associadas quando uma instância do Spark é instanciada. Essas características incluem, entre outras, o nome, o número de nós, o tamanho do nó, o comportamento de dimensionamento e a vida útil. Um Pool do Spark em si não consome nenhum recurso. Não há custos incorridos com a criação de Pools do Spark. Os encargos só são aplicados quando um trabalho do Spark é executado no Pool do Spark de destino, e a instância do Spark é instanciada sob demanda.

Você pode ler como criar um Pool do Spark e ver todas as suas propriedades em Introdução aos Pools do Spark no Synapse Analytics

Computação Isolada

A opção de Computação Isolada fornece mais segurança para os recursos de computação do Spark de serviços não confiáveis, dedicando o recurso de computação física a um único cliente. A opção de Computação Isolada é mais adequada para cargas de trabalho que exigem um alto grau de isolamento de cargas de trabalho de outros clientes por motivos que incluem o cumprimento de requisitos de conformidade e regulatórios. A opção de Computação Isolada só está disponível com o tamanho de nó XXXLarge (80 vCPU/504 GB) e nas regiões a seguir. A opção de Computação Isolada pode ser habilitada ou desabilitada após a criação do pool, embora a instância precise ser reiniciada. Se você pretende habilitar esse recurso no futuro, verifique se o seu workspace do Synapse é criado em uma região com suporte a Computação Isolada.

  • Leste dos EUA
  • Oeste dos EUA 2
  • Centro-Sul dos Estados Unidos
  • Governo dos EUA do Arizona
  • Gov. dos EUA – Virgínia

Nós

A instância do Pool do Apache Spark consiste em um nó de cabeçalho e dois ou mais nós de trabalho com um mínimo de três nós em uma instância do Spark. O nó de cabeçalho executa serviços de gerenciamento extras, como Livy, Yarn Resource Manager, Zookeeper e o driver do Spark. Todos os nós executam serviços como o Node Agent e o Gerenciador de nó do Yarn. Todos os nós de trabalho executam o serviço de executor do Spark.

Tamanhos dos nós

Um pool do Spark pode ser definido com tamanhos de nós que variam de um nó de computação pequeno com 4 vCore e 32 GB de memória até um nó de computação XXLarge com 64 vCore e 432 GB de memória por nó. Os tamanhos de nó podem ser alterados após a criação do pool, embora a instância precise ser reiniciada.

Tamanho vCore Memória
Small 4 32 GB
Médio 8 64 GB
Grande 16 128 GB
XLarge 32 256 GB
XXLarge 64 432 GB
XXXLarge (Computação Isolada) 80 504 GB

Autoscale

O dimensionamento automático para pools do Apache Spark permite escalar e reduzir verticalmente de modo automático os recursos de computação com base na quantidade de atividade. Quando a funcionalidade de dimensionamento automático estiver habilitada, defina o número mínimo e máximo de nós a serem dimensionados. Quando o recurso de dimensionamento automático estiver desabilitado, o número de nós definido permanecerá fixo. Essa configuração pode ser alterada após a criação do pool, embora a instância precise ser reiniciada.

Armazenamento de pool elástico

Os pools do Apache Spark agora dão suporte ao armazenamento de pool elástico. O armazenamento de pool elástico permite que o mecanismo do Spark monitore o armazenamento temporário do nó de trabalho e anexe discos extras, se necessário. Os Pools do Apache Spark utilizam o armazenamento em disco temporário enquanto o pool é instanciado. Os trabalhos do Spark gravam saídas de mapa embaralhadas, embaralham dados e dados despejados em discos de VM locais. Exemplos de operações que podem utilizar o disco local são classificar, armazenar em cache e persistir. Quando o espaço em disco da VM temporária se esgota, os trabalhos do Spark podem falhar devido ao erro "Sem Espaço em Disco" (java.io.IOException: sem espaço no dispositivo). Com erros "Sem Espaço em Disco", grande parte da carga para evitar que trabalhos falhem muda para o cliente para reconfigurar os trabalhos do Spark (por exemplo, ajustar o número de partições) ou clusters (por exemplo, adicionar mais nós ao cluster). Esses erros podem não ser consistentes e o usuário pode acabar fazendo muitos experimentos ao executar trabalhos de produção. Esse processo pode ser caro para o usuário em várias dimensões:

  • Tempo perdido. Os clientes são obrigados a fazer muitos experimentos com as configurações de trabalho por meio de tentativa e erro e espera-se que entendam as métricas internas do Spark para tomar a decisão correta.
  • Recursos desperdiçados. Como os trabalhos de produção podem processar quantidades variadas de dados, os trabalhos do Spark podem falhar de modo não determinístico se os recursos não forem provisionados em excesso. Por exemplo, considere o problema da distorção de dados, que pode fazer com que alguns nós exijam mais espaço em disco do que outros. Atualmente no Synapse, cada nó em um cluster obtém o mesmo tamanho de espaço em disco e aumentar o espaço em disco em todos os nós não é uma solução ideal e leva a um tremendo desperdício.
  • Lentidão na execução do trabalho. No cenário hipotético em que resolvemos o problema por nós de dimensionamento automático (supondo que os custos não sejam um problema para o cliente final), adicionar um nó de computação ainda é caro (leva alguns minutos) em vez de adicionar armazenamento (leva alguns segundos).

Nenhuma ação é exigida de você; além disso, você deve ver menos falhas de trabalho como resultado.

Observação

O armazenamento do pool elástico do Azure Synapse está atualmente em Visualização Pública. Durante a Visualização Pública, não há nenhum custo para o uso do armazenamento de pool Elástico.

Pausar automaticamente

O recurso de pausa automática libera recursos após um período de ociosidade definido, reduzindo o custo geral de um Pool do Apache Spark. O número de minutos de ociosidade pode ser definido quando esse recurso estiver habilitado. O recurso de pausa automática é independente do recurso de dimensionamento automático. Os recursos poderão ser pausados se o dimensionamento automático estiver habilitado ou desabilitado. Essa configuração pode ser alterada após a criação do pool, embora as sessões ativas precisem ser reiniciadas.

Próximas etapas