Compartilhar via


Limites de simultaneidade e filas no Apache Spark para Microsoft Fabric

Aplica-se a:✅ engenharia 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 possibilidade de um recurso executar uma atividade ou produzir uma saída. Itens diferentes consomem capacidades diferentes em um determinado momento. O Microsoft Fabric oferece capacidade por meio de SKUs e avaliações do Fabric. Para saber mais, confiraO que é Capacidade?

Quando os usuários criam uma capacidade do Microsoft Fabric no Azure, eles podem escolher 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 do Apache Spark para cada unidade de capacidade que reservam como parte de seu SKU.

Uma unidade de capacidade = dois VCores do Spark

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

Limitação e enfileiramento de simultaneidade

O Spark para Fabric impõe um mecanismo de limitação e enfileiramento baseado em núcleos, no qual os usuários podem enviar trabalhos com base nos SKUs de capacidade adquiridos do Fabric. O mecanismo de enfileiramento é uma fila simples baseada em FIFO, que verifica se há slots de trabalho disponíveis e repete automaticamente os trabalhos depois que a capacidade fica disponível. Quando os usuários enviarem trabalhos de notebook ou lakehouse, como Carregar na Tabela, quando a capacidade deles estiver em sua utilização máxima devido a trabalhos simultâneos em execução usando todos os vCores Spark disponíveis para a SKU de capacidade do Fabric adquirida, eles serão limitados com a mensagem

Código de resposta HTTP 430: esse trabalho do Spark não pode ser executado porque você atingiu um limite de computação ou de 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 as filas habilitadas, os trabalhos de Notebook acionados por pipelines, bem como o Job Scheduler e as 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 do Fabric são habilitadas com bursting, o que permite que você consuma núcleos de computação adicionais além dos que foram comprados para acelerar a execução de uma carga de trabalho. Em cargas de trabalho do Apache Spark, o burst permite que os usuários enviem trabalhos com um total de 3X dos VCores adquiridos do Spark.

Observação

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

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

SKU de capacidade do Fabric SKU equivalente do Power BI VCores do Spark Máx. de vCores Spark com fator de disparo contínuo 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 - 2.048 6144 1024
F2048 - 4096 12288 2.048
Capacidade de avaliação P1 128 128 NA

Cálculo de exemplo: o SKU F64 oferece 128 Spark VCores. O fator de disparo contínuo aplicado para uma SKU F64 é 3, o que dá um total de 384 vCores Spark. O fator de disparo contínuo é aplicado apenas para ajudar com simultaneidade e não aumenta os núcleos máximos disponíveis para um trabalho individual do Spark. Isso significa que um único Notebook, definição de trabalho do Spark ou trabalho do lakehouse pode usar uma configuração de pool de até 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 vCores Spark.

Observação

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

A limitação do Spark para Fabric não impõe limites arbitrários baseados em trabalhos e o limite é baseado apenas no número de núcleos permitidos para o SKU de capacidade adquirido do Fabric. A admissão de trabalhos por padrão será um controle de admissão otimista, onde os empregos são admitidos com base em seu requisito mínimo de núcleos. Saiba mais sobre a otimista admissão de trabalhos Admissão e gerenciamento de trabalhos 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 de inicialização com base no SKU de Capacidade do Fabric em Configuração de pools de início.

Bursting em nível de trabalho

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