Apache Spark no Azure Synapse Analytics

O Apache Spark é uma estrutura de processamento paralelo que dá suporte ao processamento na memória para aumentar o desempenho de aplicativos de análise de Big Data. O Apache Spark no Azure Synapse Analytics é uma das implementações da Microsoft do Apache Spark na nuvem. O Azure Synapse facilita a criação e a configuração de um Pool do Apache Spark sem servidor no Azure. Os Pools do Spark no Azure Synapse são compatíveis com o Armazenamento do Azure e o Azure Data Lake Generation 2 Storage. Portanto, você pode usar Pools do Spark para processar os dados armazenados no Azure.

Diagram shows Spark SQL, Spark MLib, and GraphX linked to the Spark core engine, above a YARN layer over storage services.

O que é o Apache Spark

O Apache Spark oferece primitivos para computação de cluster na memória. Um trabalho do Spark pode carregar e armazenar dados em cache na memória e consultá-los várias vezes. A computação na memória é muito mais rápida do que os aplicativos baseados em disco. O Spark também se integra a diversas linguagens de programação para permitir a manipulação de conjuntos de dados distribuídos como coleções locais. Não é necessário para estruturar tudo como operações de mapeamento e redução. Saiba mais no vídeo do Apache Spark para Synapse.

Diagram shows Traditional MapReduce, with disk-based apps and Spark, with cache-based operations.

Os Pools do Spark no Azure Synapse oferecem um serviço do Spark totalmente gerenciado. Os benefícios da criação de um Pool do Spark no Azure Synapse Analytics estão listados aqui.

Recurso Descrição
Velocidade e eficiência As instâncias do Spark se iniciam em aproximadamente 2 minutos para menos de 60 nós e em aproximadamente 5 minutos para mais de 60 nós. A instância é desligada, por padrão, 5 minutos após a última execução de trabalho, a menos que seja mantida ativa por uma conexão de notebook.
Fácil de criar Você pode criar um Pool do Spark no Azure Synapse em minutos usando o portal do Azure, o Azure PowerShell ou o SDK do .NET do Synapse Analytics. Confira Introdução aos pools do Spark no Azure Synapse Analytics.
Fácil de uso O Synapse Analytics inclui um notebook personalizado derivado do nteract. Você pode usar esses blocos de anotações para processar e visualizar dados interativamente.
APIs REST O Spark no Azure Synapse Analytics inclui o Apache Livy, um servidor de trabalho do Spark baseado em API REST para enviar e monitorar trabalhos remotamente.
Suporte ao Azure Data Lake Storage Generation 2 Os pools do Spark no Azure Synapse podem usar o Azure Data Lake Storage Generation 2, bem como o Armazenamento de Blobs. Para obter mais informações sobre o Data Lake Storage, confira Visão geral do Azure Data Lake Storage.
Integração com IDEs de terceiros O Azure Synapse fornece um plug-in de IDE para o JetBrains' IntelliJ IDEA que é útil para criar e enviar aplicativos para um Pool do Spark.
Bibliotecas Anaconda pré-carregadas Os pools do Spark no Azure Synapse vêm com bibliotecas Anaconda pré-instaladas. Anaconda fornece quase 200 bibliotecas de machine learning, análise de dados, visualização e outras tecnologias.
Escalabilidade O Apache Spark nos pools do Azure Synapse pode ter o dimensionamento automático habilitado, de modo que os pools sejam escalados pela adição ou pela remoção de nós, conforme necessário. Além disso, os Pools do Spark podem ser desligados sem perda de dados, pois todos os dados ficam armazenados no Armazenamento do Azure ou no Data Lake Storage.

Os pools do Spark no Azure Synapse incluem os componentes a seguir que estão disponíveis nos pools por padrão:

Arquitetura do Pool do Spark

Os aplicativos Spark são executados como conjuntos independentes de processos em um pool, coordenados pelo objeto SparkContext em seu programa principal, chamado de programa de driver.

O SparkContext pode se conectar ao gerenciador de cluster, que aloca recursos entre aplicativos. O gerenciador de cluster é o YARN do Apache Hadoop. Após a conexão, o Spark adquire executores em nós no pool, que são processos que executam cálculos e armazenam dados para o seu aplicativo. Em seguida, ele envia o código do seu aplicativo, definido pelos arquivos JAR ou Python passados ao SparkContext para os executores. Por fim, o SparkContext envia tarefas para serem realizadas pelos executores.

O SparkContext executa a função principal do usuário e as várias operações paralelas nos nós. Em seguida, o SparkContext coleta os resultados das operações. Os nós leem e gravam dados do sistema de arquivos. Os nós também armazenam dados transformados na memória em cache como RDDs (Conjuntos de Dados Distribuídos Resilientes).

OSparkContext se conecta ao pool do Spark e é responsável por converter um aplicativo em um grafo direcionado acíclico (DAG). O grafo consiste em tarefas individuais que são executadas dentro de um processo de executor nos nós. Cada aplicativo obtém seus próprios processos de executor, que se mantêm pela duração do aplicativo e executa tarefas em vários threads.

Casos de uso do Apache Spark no Azure Synapse Analytics

Os pools do Spark no Azure Synapse Analytics permitem os seguintes cenários principais:

  • Engenharia de Dados/Preparação de Dados

O Apache Spark inclui muitos recursos de linguagem para dar suporte à preparação e ao processamento de grandes volumes de dados, tornando-os mais valiosos e para serem consumidos por outros serviços no Azure Synapse Analytics. Isso é possibilitado por meio das várias linguagens (C#, Scala, PySpark, Spark SQL) e bibliotecas fornecidas para processamento e conectividade.

  • Machine Learning

O Apache Spark vem com a MLlib, uma biblioteca de machine learning criada com base no Spark que pode ser usada em um Pool do Spark no Azure Synapse Analytics. Os pools do Spark no Azure Synapse Analytics também incluem o Anaconda, uma distribuição do Python com uma variedade de pacotes para ciência de dados, incluindo machine learning. Quando combinado com o suporte interno para notebooks, você tem um ambiente para criação de aplicativos de aprendizado de máquina.

  • Dados de streaming

O Synapse Spark dá suporte ao streaming estruturado do Spark, desde que você esteja executando a versão com suporte do runtime do Azure Synapse Spark. Todos os trabalhos têm suporte por sete dias. Isso se aplica a trabalhos em lote e streaming e, em geral, aos clientes automatizam o processo de reinicialização usando o Azure Functions.

Por onde começar

Use os seguintes artigos para saber mais sobre o Apache Spark no Azure Synapse Analytics:

Observação

Algumas das documentações oficiais do Apache Spark dependem do uso do console do Spark, que não está disponível no Azure Synapse Spark. Use as experiências de notebook ou do IntelliJ.

Próximas etapas

Nesta visão geral, você obtém uma noção básica do Apache Spark no Azure Synapse Analytics. Avance para o próximo artigo para saber como criar um Pool do Spark no Azure Synapse Analytics: