Compartilhar via


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

Aplica-se a: Engenharia 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 do Apache Spark totalmente gerenciada. Essa plataforma foi projetada para fornecer velocidade e eficiência incomparáveis. Com os pools iniciais, você pode esperar a inicialização rápida da sessão do Apache Spark, normalmente dentro de 5 a 10 segundos, e nenhuma necessidade de configuração manual. Além disso, você obtém a flexibilidade de personalizar os pools do Apache Spark de acordo com os requisitos específicos de engenharia de dados e ciência de dados. A plataforma permite uma experiência de análise otimizada e personalizada.

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

Pools iniciais

Os pools iniciais são uma maneira rápida e fácil de usar o Spark na plataforma do 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 os dados e obter insights mais rapidamente.

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

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

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

Os pools iniciais também têm configurações padrão que permitem instalar bibliotecas rapidamente sem diminuir a velocidade da hora de início da sessão. No entanto, caso queira usar propriedades ou bibliotecas adicionais personalizadas do Apache Spark no espaço de trabalho ou nas configurações de capacidade, pode levar mais tempo para o Spark obter os nós para você. Quando se trata de cobrança e consumo de capacidade, a cobrança é feita pelo consumo de capacidade ao começar a executar o Notebook ou a definição de trabalho do Apache Spark. Você não será cobrado pelo tempo em que os clusters estiverem ociosos no pool.

Diagrama mostrando as etapas de alto nível no faturamento de pools iniciais.

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

Pools do 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 pool do Spark e escolher quantos e quão grandes são os nós (os computadores que fazem o trabalho). Você também pode informar ao Spark como ajustar o número de nós, dependendo de quanto trabalho você tem. A criação de um pool do 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 o pool do Spark por dois minutos após a expiração da sessão, o pool do Spark será desalocado. Esse período de tempo de expiração de sessão padrão é definido como 20 minutos e você pode alterá-lo se desejar. Se você for um administrador de workspace, também poderá criar pools personalizados do Spark para seu workspace e torná-los a opção padrão para outros usuários. Dessa forma, você pode economizar tempo e evitar configurar um novo pool do Spark sempre que executar um notebook ou um trabalho do Spark. Os pools personalizados do Spark levam cerca de três minutos para serem iniciados, pois o Spark precisa obter os nós do Azure.

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

O tamanho e o número de nós que você pode ter em seu pool personalizado do Spark depende 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 VCores do Apache Spark (uma unidade de potência de computação do Spark) são iguais a uma unidade de capacidade. Por exemplo, um SKU F64 de capacidade do Fabric tem 64 unidades de capacidade, o que equivale a 128 VCores spark. Você pode usar esses VCores do Spark para criar nós de tamanhos diferentes para o pool personalizado do Spark, desde que o número total de VCores do Spark não exceda 128.

A cobrança de pools do Spark é semelhante à dos pools iniciais em que você não paga pelos pools personalizados do Spark criados, a menos que tenha uma sessão ativa do Spark criada para executar uma definição de trabalho do Spark ou notebook. Você só é cobrado pela duração das execuções do trabalho. Você não é 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 na cobrança de pools personalizados.

Por exemplo, se você enviar um trabalho de notebook 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 notebook é interrompida depois que a sessão do Spark for interrompida ou expirada. Você não será cobrado pelo tempo necessário para adquirir instâncias de cluster da nuvem e pelo tempo necessário para inicializar o contexto do Spark.

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

SKU de capacidade do Fabric Unidades de capacidade VCores do Spark Tamanho do nó Número máximo de nós
F64 64 384 Pequeno 96
F64 64 384 Médio 48
F64 64 384 grande 24
F64 64 384 Extragrande 12
F64 64 384 XX-Grande 6

Observação

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

Nós

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

Tamanhos dos nós

Um Pool do Spark pode ser definido com tamanhos de nó que variam de um pequeno nó de computação com 4 vCore e 32 GB de memória até um nó de computação XX-Grande com 64 vCore e 512 GB de memória por nó. Os tamanhos de nó podem ser alterados após a criação do pool, embora a instância precise ser reiniciada.

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

Autoscale

O dimensionamento automático para pools do Apache Spark permite escalar e reduzir verticalmente de modo automático os recursos de computação com base na quantidade de atividade. Quando a funcionalidade de dimensionamento automático estiver habilitada, defina o número mínimo e máximo de nós a serem dimensionados. Quando o recurso de dimensionamento automático estiver desabilitado, o número de nós definido permanecerá fixo. Você pode alterar essa configuração após a criação do pool, embora talvez seja necessário reiniciar a instância.

Observação

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 da computação. Se a redução de escala menos agressiva for preferida, essa configuração pode ser definida como false

Alocaçã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. Ela 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 têm dificuldade em ajustar as configurações do executor porque 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. Os usuários podem habilitar a opção alocação dinâmica de executores como parte da configuração do pool, o que habilitaria a alocação automática de executores para o aplicativo do Spark com base nos nós disponíveis no Pool do Spark.

Quando a opção de alocação dinâmica está habilitada para cada aplicativo do Spark enviado, o sistema reserva executores durante a etapa de envio de trabalho com base no máximo de nós. Os usuários especificam o máximo de nós para dar suporte a cenários de dimensionamento automático bem-sucedidos.