Partilhar via


O que é a computação do Apache Spark no Microsoft Fabric?

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

As experiências de Engenharia de Dados e Ciência de Dados do Microsoft Fabric operam em uma plataforma de computação Apache Spark totalmente gerenciada. Esta plataforma foi concebida para proporcionar uma velocidade e eficiência incomparáveis. Com pools iniciais, você pode esperar uma inicialização rápida da sessão do Apache Spark, normalmente dentro de 5 a 10 segundos, sem necessidade de configuração manual. Você também tem a flexibilidade de personalizar pools do Apache Spark de acordo com seus requisitos específicos de engenharia de dados e ciência de dados. A plataforma permite uma experiência analítica otimizada e personalizada. Em suma, um pool inicial é uma maneira rápida de usar o Spark pré-configurado, enquanto um pool Spark oferece personalização e flexibilidade.

Imagem de uma plataforma de computação Spark com pools iniciais e pools Spark personalizados.

Piscinas de arranque

Os pools iniciais são uma maneira rápida e fácil de usar o Spark na plataforma Microsoft Fabric em segundos. Você pode usar as sessões do Spark imediatamente, em vez de esperar que o Spark configure os nós para você, o que ajuda você a fazer mais com dados e obter insights mais rapidamente.

Imagem de uma tabela mostrando a configuração do pool inicial.

Os pools iniciais têm clusters Apache Spark que estão sempre ativos e prontos para suas solicitações. Eles usam nós médios que são dimensionados dinamicamente com base nas suas necessidades de trabalho do Spark.

Diagrama mostrando o design de alto nível de piscinas iniciais.

Os pools iniciais também têm configurações padrão que permitem instalar bibliotecas rapidamente sem diminuir a hora de início da sessão. No entanto, se você quiser usar propriedades ou bibliotecas personalizadas extras do Apache Spark a partir de seu espaço de trabalho ou configurações de capacidade, o Spark leva mais tempo para obter os nós para você. Quando se trata de faturamento e consumo de capacidade, você é cobrado pelo consumo de capacidade quando começa a executar sua definição de trabalho do notebook ou do Apache Spark. Você não será cobrado pelo tempo em que os clusters estiverem ociosos no pool.

Diagrama mostrando os estágios de alto nível no faturamento de pools iniciais.

Por exemplo, se você enviar um trabalho de bloco de anotações para um pool inicial, será cobrado apenas pelo período em que a sessão do bloco de anotações estiver ativa. O tempo faturado não inclui o tempo ocioso ou o tempo necessário para personalizar a sessão com o contexto do Spark.

Conjuntos do Apache Spark

Um pool do Spark é uma maneira de dizer ao Spark que tipo de recursos você precisa para suas tarefas de análise de dados. Você pode dar um nome ao seu pool Spark e escolher quantos e quão grandes são os nós (as máquinas que fazem o trabalho). Você também pode dizer ao Spark como ajustar o número de nós dependendo de quanto trabalho você tem. A criação de uma piscina Spark é gratuita; você só paga quando executa um trabalho do Spark no pool e, em seguida, o Spark configura os nós para você.

Se você não usar sua piscina Spark por 2 minutos após a sessão expirar, sua piscina Spark será deslocalizada. Esse período de tempo de expiração da sessão padrão é definido como 20 minutos e você pode alterá-lo se desejar. Se você for um administrador de espaço de trabalho, também poderá criar pools do Spark personalizados para seu espaço de trabalho e torná-los a opção padrão para outros usuários. Desta forma, pode poupar tempo e evitar configurar uma nova piscina Spark sempre que executar um bloco de notas ou um trabalho Spark. Os pools personalizados do Spark levam cerca de três minutos para iniciar, porque o Spark deve obter os nós do Azure.

Você pode até mesmo criar pools Spark de nó único, definindo o número mínimo de nós para um, para que o driver e o executor sejam executados em um único nó que vem com HA restaurável e é adequado para pequenas cargas de trabalho.

O tamanho e o número de nós que você pode ter em seu pool personalizado do Spark dependem da capacidade do Microsoft Fabric. A capacidade é uma medida de quanto poder de computação você pode usar no Azure. Uma maneira de pensar nisso é que dois Apache Spark VCores (uma unidade de poder de computação para o Spark) equivalem a uma unidade de capacidade. Por exemplo, um SKU F64 de capacidade de malha tem 64 unidades de capacidade, o que equivale a 384 Spark VCores (64 * 2 * 3X Burst Multiplier). Você pode usar esses Spark VCores para criar nós de tamanhos diferentes para seu pool Spark personalizado, desde que o número total de Spark VCores não exceda 384.

As piscinas de faísca são cobradas como piscinas iniciais; você não paga pelos pools personalizados do Spark que criou, a menos que tenha uma sessão ativa do Spark criada para executar um bloco de anotações ou uma definição de trabalho do Spark. Você só é cobrado pela duração das execuções de trabalho. Você não será cobrado por estágios como a criação e a desalocação do cluster após a conclusão do trabalho.

Diagrama mostrando os estágios de alto nível no faturamento de pools personalizados.

Por exemplo, se você enviar um trabalho de bloco de anotações para um pool personalizado do Spark, será cobrado apenas pelo período de tempo em que a sessão estiver ativa. A cobrança dessa sessão do bloco de anotações é interrompida quando a sessão do Spark é interrompida ou expirada. Você não é cobrado pelo tempo necessário para adquirir instâncias de cluster da nuvem ou pelo tempo necessário para inicializar o contexto do Spark.

Possíveis configurações de pool personalizadas para F64 com base no exemplo anterior:

Nota

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 = Dois Spark VCores Assim, F64 => 128 Spark VCores e em que é aplicado um multiplicador de Burst de 3x, o que resulta num total de 384 Spark VCores.

Capacidade de malha SKU Unidades de capacidade Max Spark VCores com Fator de Explosão Tamanho do nó Número máximo de nós
F64 64 384 Pequena 96
F64 64 384 Médio 48
F64 64 384 Grande 24
F64 64 384 X-Grande 12
F64 64 384 XX-Grande 6

Nota

Para criar pools personalizados, você precisa de permissões de administrador para o espaço de trabalho. E o administrador de capacidade do Microsoft Fabric deve conceder permissões para permitir que os administradores do espaço de trabalho dimensionem seus pools Spark personalizados. Para saber mais, consulte Introdução aos pools Spark personalizados no Fabric

Nós

Uma instância de pool do Apache Spark consiste em um nó principal e nós de trabalho, pode iniciar um mínimo de um nó em uma instância do Spark. O nó principal executa serviços de gerenciamento extras, como Livy, Yarn Resource Manager, Zookeeper e o driver Apache 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 Apache 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) a um nó de computação extra grande duplo (com 64 vCore e 512 GB de memória por nó). Os tamanhos dos nós podem ser alterados após a criação do pool, embora a sessão ativa tenha que ser reiniciada.

Tamanho vCore Memória
Pequena 4 32 GB
Médio 8 64 GB
Grande 16 128 GB
X-Grande 32 256 GB
XX-Grande 64 512 GB

Nota

Os tamanhos de nó X-Large e XX-Large só são permitidos para SKUs de malha não experimentais.

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. Ao habilitar o recurso de dimensionamento automático, você define o número mínimo e máximo de nós para dimensionar. Quando você desabilita o recurso de dimensionamento automático, o número de nós definidos permanece fixo. Você pode alterar essa configuração após a criação do pool, embora talvez seja necessário reiniciar a instância.

Nota

Por padrão, spark.yarn.executor.decommission.enabled é definido como true, permitindo o desligamento automático de nós subutilizados para otimizar a eficiência de computação. Se for preferível reduzir a escala menos agressiva, essa configuração pode ser definida como false

Repartição dinâmica

A alocação dinâmica permite que o aplicativo Apache Spark solicite mais executores se as tarefas excederem a carga que os executores atuais podem suportar. Ele também libera os executores quando os trabalhos são concluídos e se o aplicativo Spark está se movendo para o estado ocioso. Os usuários corporativos geralmente acham difícil ajustar as configurações do executor porque elas são muito diferentes em diferentes estágios de um processo de execução de trabalho do Spark. Essas configurações também dependem do volume de dados processados, que muda de tempos em tempos. Você pode habilitar a opção de alocação dinâmica de executores como parte da configuração do pool, que permite a alocação automática de executores para o aplicativo Spark com base nos nós disponíveis no pool do Spark.

Quando você habilita a opção de alocação dinâmica para cada aplicativo Spark enviado, o sistema reserva executores durante a etapa de envio de trabalho com base nos nós mínimos. Você especifica nós máximos para oferecer suporte a cenários de dimensionamento automático bem-sucedidos.