Partilhar via


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, mas não estão limitadas ao nome, número de nós, tamanho do nó, comportamento de dimensionamento e tempo de vida. Uma piscina Spark por si só não consome recursos. Não há custos incorridos com a criação de piscinas Spark. Só são incorridos encargos depois de uma tarefa Spark ser executada no conjunto do Spark de destino e a instância do Spark ser instantânea a pedido.

Você pode ler como criar uma piscina Spark e ver todas as suas propriedades aqui Introdução às piscinas Spark no Synapse Analytics

Computação isolada

A opção Computação isolada fornece mais segurança aos 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 das cargas de trabalho de outros clientes por motivos que incluem o cumprimento de requisitos normativos e de conformidade. A opção Isolar computação só está disponível com o tamanho do nó XXXLarge (80 vCPU / 504 GB) e disponível apenas nas seguintes regiões. 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ê espera habilitar esse recurso no futuro, certifique-se de que seu espaço de trabalho Synapse seja criado em uma região isolada com suporte de computação.

  • E.U.A. Leste
  • E.U.A. Oeste 2
  • E.U.A. Centro-Sul
  • US Gov - Arizona
  • US Gov - Virginia

Nós

A instância do pool Apache Spark consiste em um nó principal 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ó principal executa serviços de gerenciamento extras, como Livy, Yarn Resource Manager, Zookeeper e o driver Spark. Todos os nós executam serviços como Node Agent e Yarn Node Manager. Todos os nós de trabalho executam o serviço Spark Executor.

Tamanhos dos nós

Um pool Spark pode ser definido com tamanhos de nó 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 dos nós podem ser alterados após a criação do pool, embora a instância possa precisar ser reiniciada.

Tamanho vCore Memória
Pequena 4 32 GB
Médio 8 64 GB
Grande 16 128 GB
XLarge 32 256 GB
XXLarge 64 432 GB
xxx grande (computação isolada) 80 504 GB

Dimensionamento Automático

O dimensionamento automático para pools do Apache Spark permite aumentar e diminuir automaticamente o escalonamento de recursos de computação com base na quantidade de atividade. Quando o recurso de dimensionamento automático está habilitado, você define o número mínimo e máximo de nós para dimensionar. Quando o recurso de dimensionamento automático estiver desativado, o número de nós definidos permanecerá fixo. Essa configuração pode ser alterada após a criação do pool, embora a instância possa precisar ser reiniciada.

Armazenamento elástico da piscina

Os pools do Apache Spark agora suportam armazenamento elástico de pool. O armazenamento de pool elástico permite que o mecanismo Spark monitore o armazenamento temporário do nó de trabalho e anexe discos extras, se necessário. Os pools do Apache Spark utilizam armazenamento temporário em disco enquanto o pool é instanciado. Os trabalhos do Spark gravam saídas de mapa aleatório, embaralham dados e derramam dados 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 temporário da VM se esgota, os trabalhos do Spark podem falhar devido ao erro "Sem espaço em disco" (java.io.IOException: não há espaço restante no dispositivo). Com erros de "Falta de espaço em disco", grande parte da carga para evitar que os trabalhos falhem é transferida 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 experimentando muito executando trabalhos de produção. Este processo pode ser caro para o usuário em várias dimensões:

  • Tempo perdido. Os clientes são obrigados a experimentar fortemente 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 variáveis de dados, os trabalhos do Spark podem falhar de forma não determinística se os recursos não forem provisionados em excesso. Por exemplo, considere o problema da distorção de dados, que pode resultar em alguns nós exigindo mais espaço em disco do que outros. Atualmente, no Synapse, cada nó em um cluster recebe 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 dimensionando automaticamente os nós (assumindo que os custos não são 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 por você, além disso, você deve ver menos falhas de trabalho como resultado.

Nota

O armazenamento do pool elástico do Azure Synapse está atualmente em Visualização Pública. Durante a Pré-visualização Pública, não é cobrada a utilização do armazenamento do Elastic pool.

Pausa automática

O recurso de pausa automática libera recursos após um período ocioso definido, reduzindo o custo geral de um pool do Apache Spark. O número de minutos de tempo ocioso pode ser definido assim que esse recurso estiver ativado. O recurso de pausa automática é independente do recurso de dimensionamento automático. Os recursos podem ser pausados independentemente de a escala automática estar ativada ou desativada. Essa configuração pode ser alterada após a criação do pool, embora as sessões ativas precisem ser reiniciadas.

Próximos passos