Partilhar via


Limites de simultaneidade e filas no Apache Spark for Microsoft Fabric

Aplica-se a:✅ Engenharia de Dados e Ciência de Dados no Microsoft Fabric

O Microsoft Fabric permite a alocação de unidades de computação por meio da capacidade, que é um conjunto dedicado de recursos que está disponível em um determinado momento para ser usado. A capacidade define a capacidade de um recurso para executar uma atividade ou produzir resultados. Itens diferentes consomem capacidade diferente em um determinado momento. O Microsoft Fabric oferece capacidade por meio de SKUs e avaliações do Fabric. Para obter mais informações, consulte O que é capacidade?.

Quando os usuários criam uma capacidade do Microsoft Fabric no Azure, eles escolhem um tamanho de capacidade com base no tamanho da carga de trabalho de análise. No Apache Spark, os usuários obtêm dois VCores Apache Spark para cada unidade de capacidade que reservam como parte de sua SKU.

Uma unidade de capacidade = duas faíscas VCores

Depois de comprar a capacidade, os administradores podem criar espaços de trabalho dentro da capacidade no Microsoft Fabric. Os VCores do Spark associados à capacidade são compartilhados entre todos os itens baseados no Apache Spark, como notebooks, definições de trabalho do Apache Spark e lakehouses criados nesses espaços de trabalho.

Limitação e fila de simultaneidade

O Spark for Fabric impõe um mecanismo de limitação e fila baseado em núcleos, no qual os usuários podem enviar trabalhos com base nas SKUs de capacidade de malha compradas. O mecanismo de enfileiramento é uma fila simples baseada em FIFO, que verifica se há slots de trabalho disponíveis e tenta novamente automaticamente os trabalhos assim que a capacidade estiver disponível. Quando os usuários enviam trabalhos de notebook ou lakehouse, como Load to Table, quando sua capacidade está em sua utilização máxima devido a trabalhos em execução simultânea usando todos os Spark Vcores disponíveis para sua SKU de capacidade de malha comprada, eles são limitados com a mensagem

Código de resposta HTTP 430: Este trabalho do Spark não pode ser executado porque você atingiu um limite de taxa de computação ou API do Spark. Para executar esse trabalho do Spark, cancele um trabalho ativo do Spark por meio do hub de monitoramento, escolha um SKU de maior capacidade ou tente novamente mais tarde.

Com a fila habilitada, os trabalhos de bloco de anotações acionados a partir de pipelines e do agendador de tarefas e definições de trabalho do Spark são adicionados à fila e repetidos automaticamente quando a capacidade é liberada. A expiração da fila é definida como 24 horas a partir do horário de envio do trabalho. Após esse período, os trabalhos precisarão ser reenviados.

As capacidades de malha são habilitadas com bursting, que permite consumir núcleos de computação extras além do que foi comprado para acelerar a execução de uma carga de trabalho. Para cargas de trabalho do Apache Spark, o bursting permite que os usuários enviem trabalhos com um total de 3X o Spark VCores comprado.

Nota

O fator bursting aumenta apenas o número total de Spark VCores para ajudar com a simultaneidade, mas não aumenta o máximo de núcleos por trabalho. Os usuários não podem enviar um trabalho que exija mais núcleos do que a capacidade do Fabric oferece.

A seção a seguir lista vários limites baseados em núcleos para cargas de trabalho do Spark baseadas em SKUs de capacidade do Microsoft Fabric:

Capacidade de malha SKU SKU equivalente do Power BI Spark VCores Max Spark VCores com Fator de Explosão Limite de fila
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Capacidade de avaliação P1 128 128 ND

Exemplo de cálculo: F64 SKU oferece 128 Spark VCores. O fator de explosão aplicado para um F64 SKU é 3, o que dá um total de 384 Spark Vcores. O fator burst é aplicado apenas para ajudar na simultaneidade e não aumenta o máximo de núcleos disponíveis para um único trabalho do Spark. Isso significa que uma única definição de trabalho Notebook ou Spark ou lakehouse pode usar uma configuração de pool de no máximo 128 vCores e 3 trabalhos com a mesma configuração podem ser executados simultaneamente. Se os notebooks estiverem usando uma configuração de computação menor, eles poderão ser executados simultaneamente até que a utilização máxima atinja o limite de 384 SparkVcore.

Nota

Os trabalhos têm um período de expiração de fila de 24 horas, após o qual são cancelados, e os usuários devem reenviá-los para execução do trabalho.

A limitação do Spark for Fabric não tem limites arbitrários arbitrários baseados em trabalhos, e a limitação é baseada apenas no número de núcleos permitidos para a SKU de capacidade de malha comprada. A admissão de emprego por defeito será um controlo de admissão otimista, onde os postos de trabalho são admitidos com base no seu requisito de núcleos mínimos. Saiba mais sobre a admissão de emprego otimista Admissão e Gestão de Empregos Se a opção de pool padrão (Pool inicial) estiver selecionada para o espaço de trabalho, a tabela a seguir listará os limites máximos de trabalho de simultaneidade.

Saiba mais sobre as configurações padrão do pool inicial com base no Fabric Capacity SKU Configuring Starter Pools.

Explosão do nível de trabalho

Os administradores podem configurar seus pools Apache Spark para utilizar os núcleos máximos do Spark com fator burst disponível para toda a capacidade. Por exemplo, um administrador de espaço de trabalho com seu espaço de trabalho anexado a uma capacidade de malha F64 agora pode configurar seu pool de faíscas (pool inicial ou pool personalizado) para 384 VCores de faísca, onde os nós máximos de pools iniciais podem ser definidos como 48 ou os administradores podem configurar um pool de tamanho de nó XX grande com 6 nós máximos.