Prepare-se para usar o Apache Spark
O Apache Spark é uma estrutura de processamento de dados distribuída que permite a análise de dados em grande escala coordenando o trabalho entre vários nós de processamento em um cluster, conhecido no Microsoft Fabric como um pool do Spark. Simplificando, o Spark usa uma abordagem de "dividir para conquistar" para processar grandes volumes de dados rapidamente, distribuindo o trabalho em vários computadores. O processo de distribuição de tarefas e agrupamento de resultados é tratado pelo Spark.
O Spark pode executar código escrito em uma ampla gama de linguagens, incluindo Java, Scala (uma linguagem de script baseada em Java), Spark R, Spark SQL e PySpark (uma variante específica do Python do Spark). Na prática, a maioria das cargas de trabalho de engenharia e análise de dados são realizadas usando uma combinação de PySpark e Spark SQL.
Conjuntos do Apache Spark
Um pool do Spark consiste em nós de computação que distribuem tarefas de processamento de dados. A arquitetura geral é mostrada no diagrama a seguir.
Como mostrado no diagrama, um pool do Spark contém dois tipos de nó:
- Um nó principal em um pool do Spark coordena processos distribuídos por meio de um programa de driver .
- O pool inclui vários nós de trabalho nos quais os processos do executor executam as tarefas reais de processamento de dados.
O pool do Spark usa essa arquitetura de computação distribuída para acessar e processar dados em um armazenamento de dados compatível - como um data lakehouse baseado no OneLake.
Pools de faíscas no Microsoft Fabric
O Microsoft Fabric fornece um pool inicial em cada espaço de trabalho, permitindo que os trabalhos do Spark sejam iniciados e executados rapidamente com o mínimo de instalação e configuração. Você pode configurar o pool inicial para otimizar os nós que ele contém de acordo com suas necessidades específicas de carga de trabalho ou restrições de custo.
Além disso, você pode criar pools Spark personalizados com configurações de nó específicas que suportam suas necessidades específicas de processamento de dados.
Nota
A capacidade de personalizar as configurações do pool do Spark pode ser desabilitada pelos administradores da malha no nível de capacidade da malha. Para obter mais informações, consulte Configurações de administração de capacidade para Engenharia de Dados e Ciência de Dados na documentação do Fabric.
Você pode gerenciar as configurações do pool inicial e criar novos pools do Spark na seção Engenharia de Dados/Ciência das configurações do espaço de trabalho.
As definições de configuração específicas para pools Spark incluem:
- Família de nós: o tipo de máquinas virtuais usadas para os nós de cluster do Spark. Na maioria dos casos, os nós otimizados para memória fornecem um desempenho ideal.
- Dimensionamento automático: se os nós devem ou não ser provisionados automaticamente conforme necessário e, em caso afirmativo, o número inicial e máximo de nós a serem alocados ao pool.
- Alocação dinâmica: alocar ou não dinamicamente os processos do executor nos nós de trabalho com base nos volumes de dados.
Se você criar um ou mais pools do Spark personalizados em um espaço de trabalho, poderá definir um deles (ou o pool inicial) como o pool padrão a ser usado se um pool específico não for especificado para um determinado trabalho do Spark.
Gorjeta
Para obter mais informações sobre como gerenciar pools do Spark no Microsoft Fabric, consulte Configurando pools iniciais no Microsoft Fabric e Como criar pools do Spark personalizados no Microsoft Fabric na documentação do Microsoft Fabric.
Tempos de execução e ambientes
O ecossistema de código aberto do Spark inclui várias versões do tempo de execução do Spark, que determina a versão do Apache Spark, Delta Lake, Python e outros componentes de software principais instalados. Além disso, dentro de um tempo de execução, você pode instalar e usar uma ampla seleção de bibliotecas de código para tarefas comuns (e às vezes muito especializadas). Como uma grande parte do processamento do Spark é realizada usando o PySpark, a enorme variedade de bibliotecas Python garante que, seja qual for a tarefa que você precise executar, provavelmente há uma biblioteca para ajudar.
Em alguns casos, as organizações podem precisar definir vários ambientes para dar suporte a uma ampla gama de tarefas de processamento de dados. Cada ambiente define uma versão de tempo de execução específica, bem como as bibliotecas que devem ser instaladas para executar operações específicas. Os engenheiros de dados e cientistas podem então selecionar qual ambiente desejam usar com um pool do Spark para uma tarefa específica.
Tempos de execução do Spark Microsoft Fabric
O Microsoft Fabric oferece suporte a vários tempos de execução do Spark e continuará a adicionar suporte para novos tempos de execução à medida que forem lançados. Você pode usar a interface de configurações do espaço de trabalho para especificar o tempo de execução do Spark que é usado pelo ambiente padrão quando um pool do Spark é iniciado.
Gorjeta
Para obter mais informações sobre tempos de execução do Spark no Microsoft Fabric, consulte Apache Spark Runtimes in Fabric na documentação do Microsoft Fabric.
Ambientes no Microsoft Fabric
Você pode criar ambientes personalizados em um espaço de trabalho do Fabric, permitindo que você use tempos de execução, bibliotecas e definições de configuração específicos do Spark para diferentes operações de processamento de dados.
Ao criar um ambiente, você pode:
- Especifique o tempo de execução do Spark que ele deve usar.
- Exiba as bibliotecas internas instaladas em todos os ambientes.
- Instale bibliotecas públicas específicas a partir do Python Package Index (PyPI).
- Instale bibliotecas personalizadas carregando um arquivo de pacote.
- Especifique o pool de faíscas que o ambiente deve usar.
- Especifique as propriedades de configuração do Spark para substituir o comportamento padrão.
- Carregue arquivos de recursos que precisam estar disponíveis no ambiente.
Depois de criar pelo menos um ambiente personalizado, você pode especificá-lo como o ambiente padrão nas configurações do espaço de trabalho.
Gorjeta
Para obter mais informações sobre como usar ambientes personalizados no Microsoft Fabric, consulte Criar, configurar e usar um ambiente no Microsoft Fabric na documentação do Microsoft Fabric.
Opções adicionais de configuração do Spark
O gerenciamento de pools e ambientes do Spark é a principal maneira de gerenciar o processamento do Spark em um espaço de trabalho do Fabric. No entanto, existem algumas opções adicionais que você pode usar para fazer otimizações adicionais.
Mecanismo de execução nativo
O mecanismo de execução nativo no Microsoft Fabric é um mecanismo de processamento vetorizado que executa operações do Spark diretamente na infraestrutura lakehouse. O uso do mecanismo de execução nativo pode melhorar significativamente o desempenho de consultas ao trabalhar com grandes conjuntos de dados nos formatos de arquivo Parquet ou Delta.
Para usar o mecanismo de execução nativo, você pode habilitá-lo no nível do ambiente ou em um bloco de anotações individual. Para habilitar o mecanismo de execução nativo no nível do ambiente, defina as seguintes propriedades do Spark na configuração do ambiente:
- spark.native.enabled: verdadeiro
- spark.shuffle.manager: org.apache.spark.shuffle.sort.ColumnarShuffleManager
Para habilitar o mecanismo de execução nativo para um script ou bloco de anotações específico, você pode definir estas propriedades de configuração no início do código, da seguinte forma:
%%configure
{
"conf": {
"spark.native.enabled": "true",
"spark.shuffle.manager": "org.apache.spark.shuffle.sort.ColumnarShuffleManager"
}
}
Gorjeta
Para obter mais informações sobre o mecanismo de execução nativo, consulte Mecanismo de execução nativo para Fabric Spark na documentação do Microsoft Fabric.
Modo de simultaneidade alta
Quando você executa o código do Spark no Microsoft Fabric, uma sessão do Spark é iniciada. Você pode otimizar a eficiência do uso de recursos do Spark usando o modo de alta simultaneidade para compartilhar sessões do Spark entre vários usuários ou processos simultâneos. Quando o modo de alta simultaneidade está habilitado para Blocos de Anotações, vários usuários podem executar código em blocos de anotações que usam a mesma sessão do Spark, garantindo o isolamento do código para evitar que variáveis em um bloco de anotações sejam afetadas pelo código em outro bloco de anotações. Você também pode habilitar o modo de alta simultaneidade para trabalhos do Spark, permitindo eficiências semelhantes para a execução simultânea de scripts não interativos do Spark.
Você ativa o modo de alta simultaneidade, use a seção Engenharia de Dados/Ciência da interface de configurações do espaço de trabalho.
Gorjeta
Para obter mais informações sobre o modo de simultaneidade alta, consulte Modo de simultaneidade alta no Apache Spark for Fabric na documentação do Microsoft Fabric.
Registro automático MLFlow
MLFlow é uma biblioteca de código aberto que é usada em cargas de trabalho de ciência de dados para gerenciar treinamento de aprendizado de máquina e implantação de modelos. Um recurso chave do MLFlow é a capacidade de registrar operações de treinamento e gerenciamento de modelos. Por padrão, o Microsoft Fabric usa MLFlow para registrar implicitamente a atividade do experimento de aprendizado de máquina sem exigir que o cientista de dados inclua código explícito para fazê-lo. Você pode desabilitar essa funcionalidade nas configurações do espaço de trabalho.
Administração de faíscas para uma capacidade de malha
Os administradores podem gerenciar as configurações do Spark em um nível de capacidade de malha, permitindo que restrinjam e substituam as configurações do Spark em espaços de trabalho dentro de uma organização.
Gorjeta
Para obter mais informações sobre como gerenciar a configuração do Spark no nível de capacidade da malha, consulte Configurar e gerenciar configurações de engenharia de dados e ciência de dados para capacidades de malha na documentação do Microsoft Fabric.