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

Um conjunto 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. Estas características incluem, mas não se limitam ao nome, número de nós, tamanho do nó, comportamento de dimensionamento e tempo de vida. Um conjunto do Spark, por si só, não consome recursos. Não existem custos incorridos com a criação de conjuntos do Spark. Os custos só são incorridos quando uma tarefa do Spark é executada no conjunto do Spark de destino e a instância do Spark é instanciada a pedido.

Pode ler como criar um conjunto do Spark e ver todas as respetivas propriedades aqui Introdução aos conjuntos do Spark no Synapse Analytics

Computação Isolada

A opção Computação Isolada fornece mais segurança aos recursos de computação do Spark a partir de serviços não fidedignos ao dedicar 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 requerem um elevado grau de isolamento das cargas de trabalho de outros clientes por motivos que incluem o cumprimento dos requisitos de conformidade e regulamentação. A opção Isolar Computação só está disponível com o tamanho do nó XXXLarge (80 vCPU/504 GB) e só está disponível nas seguintes regiões. A opção de computação isolada pode ser ativada ou desativada após a criação do conjunto, embora a instância possa ter de ser reiniciada. Se espera ativar esta funcionalidade no futuro, certifique-se de que a área de trabalho do Synapse é criada numa região de computação isolada suportada.

  • 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 conjunto do Apache Spark consiste num nó principal e dois ou mais nós de trabalho com um mínimo de três nós numa instância do Spark. O nó principal executa serviços de gestão adicionais, como Livy, Yarn Resource Manager, Zookeeper e o controlador Spark. Todos os nós executam serviços como o Agente do Nó e o Gestor de Nós do Yarn. Todos os nós de trabalho executam o serviço Executor do Spark.

Tamanhos dos Nós

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

Tamanho vCore Memória
Pequeno 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 conjuntos do Apache Spark permite aumentar e reduzir verticalmente automaticamente os recursos de computação com base na quantidade de atividade. Quando a funcionalidade de dimensionamento automático está ativada, define o número mínimo e máximo de nós para dimensionar. Quando a funcionalidade de dimensionamento automático estiver desativada, o número de nós definido permanecerá fixo. Esta definição pode ser alterada após a criação do conjunto, embora a instância possa ter de ser reiniciada.

Armazenamento do conjunto elástico

Os conjuntos do Apache Spark suportam agora o armazenamento de conjuntos elásticos. O armazenamento do conjunto elástico permite ao motor do Spark monitorizar o armazenamento temporário do nó de trabalho e anexar discos adicionais, se necessário. Os conjuntos do Apache Spark utilizam armazenamento de disco temporário enquanto o conjunto é instanciado. As tarefas do Spark escrevem saídas de mapa aleatórios, misturam dados e transbordam dados para discos de VM locais. Exemplos de operações que podem utilizar o disco local são a ordenação, a cache e a persistência. Quando o espaço temporário em disco da VM se esgota, os trabalhos do Spark podem falhar devido ao erro "Espaço Fora do Disco" (java.io.IOException: não existe espaço restante no dispositivo). Com os erros "Sem Espaço em Disco", grande parte da carga para impedir que os 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). Estes erros podem não ser consistentes e o utilizador pode acabar por experimentar muito ao executar tarefas de produção. Este processo pode ser dispendioso para o utilizador em múltiplas dimensões:

  • Tempo desperdiçado. Os clientes são obrigados a experimentar fortemente as configurações das tarefas através de tentativas e erros e espera-se que compreendam as métricas internas do Spark para tomarem a decisão correta.
  • Recursos desperdiçados. Uma vez que as tarefas de produção podem processar uma quantidade variada de dados, os trabalhos do Spark podem falhar de forma não determinista se os recursos não estiverem sobreaprovisionados. Por exemplo, considere o problema da distorção de dados, o que pode resultar em alguns nós que requerem mais espaço em disco do que outros. Atualmente no Synapse, cada nó num 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 resulta num desperdício tremendo.
  • Abrandamento na execução de trabalhos. No cenário hipotético em que resolvemos o problema através do dimensionamento automático de nós (assumindo que os custos não são um problema para o cliente final), a adição de um nó de computação ainda é dispendiosa (demora alguns minutos) em vez de adicionar armazenamento (demora alguns segundos).

Não é necessária qualquer ação por si, além de que deverá ver menos falhas de tarefas como resultado.

Nota

Azure Synapse o armazenamento do Conjunto elástico está atualmente em Pré-visualização Pública. Durante a Pré-visualização Pública, a utilização do Armazenamento de conjuntos elásticos não é cobrada.

Pausa automática

A funcionalidade de pausa automática liberta recursos após um período de inatividade definido, reduzindo o custo geral de um conjunto do Apache Spark. O número de minutos de tempo de inatividade pode ser definido assim que esta funcionalidade estiver ativada. A funcionalidade de pausa automática é independente da funcionalidade de dimensionamento automático. Os recursos podem ser colocados em pausa quer o dimensionamento automático esteja ativado ou desativado. Esta definição pode ser alterada após a criação do conjunto, embora as sessões ativas precisem de ser reiniciadas.

Passos seguintes