O que é o Apache Spark no Azure HDInsight

O Apache Spark é uma estrutura de processamento paralelo que dá suporte ao processamento na memória para melhorar o desempenho de aplicativos de análise de Big Data. O Apache Spark no Azure HDInsight é a implementação da Microsoft do Apache Spark na nuvem e é uma das várias ofertas do Spark no Azure.

  • O Apache Spark no Azure HDInsight facilita a criação e a configuração de clusters do Spark, permitindo que você personalize e use um ambiente completo do Spark no Azure.

  • Os pools do Spark no Azure Synapse Analytics usam pools do Spark gerenciados para permitir que os dados sejam carregados, modelados, processados e distribuídos para insights de análises no Azure.

  • O Apache Spark no Azure Databricks usa clusters do Spark para fornecer um workspace interativo que permite a colaboração entre os usuários para ler dados de várias fontes de dados e transformá-los em insights inovadores.

  • As atividades do Spark no Azure data Factory permitem que você use a análise do Spark em seu pipeline de dados, usando clusters sob demanda ou pré-existentes do Spark.

Com o Apache Spark no Azure HDInsight, você pode armazenar e processar seus dados no Azure. Os clusters Spark no HDInsight são compatíveis com o Armazenamento de blobs do Azure, ou Azure Data Lake Storage Gen2, permitindo que você aplique o processamento do Spark em seus armazenamento de dados.

Spark: uma estrutura unificada

Para começar a usar o Apache Spark no Azure HDInsight, siga nosso tutorial para criar clusters do Spark no HDInsight.

Para obter informações sobre o Apache Spark e como ele interage com o Azure, continue lendo o artigo abaixo.

Para obter os componentes e informações de versão, confira Componentes e versões do Apache Hadoop no Azure HDInsight.

O que é o Apache Spark?

O 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 aplicativos baseados em disco, como o Hadoop, que compartilha dados por meio do HDFS (Sistema de Arquivos Distribuído do Hadoop). O Spark também se integra à linguagem de programação Scala 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.

MapReduce tradicional X Spark.

Os clusters Spark no HDInsight oferecem um serviço Spark totalmente gerenciado. Os benefícios da criação de um cluster Spark no HDInsight estão relacionados aqui.

Recurso Descrição
Criação facilitada Você pode criar um novo cluster do Spark no HDInsight em minutos usando o portal do Azure, o Azure PowerShell ou o SDK .NET do HDInsight. Confira Introdução ao cluster do Apache Spark no HDInsight.
Fácil de uso O cluster Spark no HDInsight inclui Jupyter Notebooks e Apache Zeppelin Notebooks. Você pode usar esses blocos de anotações para processar e visualizar dados interativamente. Confira Usar notebooks do Apache Zeppelin com o Apache Spark e Carregar dados e executar consultas em um cluster do Apache Spark.
APIs REST Os clusters Spark no HDInsight incluem Apache Livy, um servidor de trabalho do Spark baseado em API REST para enviar e monitorar trabalhos remotamente. Veja Usar a API REST do Apache Spark para enviar trabalhos remotos para um cluster do HDInsight Spark.
Suporte para o Armazenamento do Azure Os clusters Spark no HDInsight podem usar o Azure Data Lake Storage Gen2/Gen2 como o armazenamento primário ou um armazenamento adicional. Para obter mais informações sobre o Data Lake Storage Gen2, confira Azure Data Lake Storage Gen2.
Integração com serviços do Azure O cluster Spark no HDInsight é fornecido com um conector para Hubs de Eventos do Azure. Você pode criar aplicativos de streaming usando os Hubs de Eventos. Isso inclui o Apache Kafka, que já está disponível como parte do Spark.
Integração com IDEs de terceiros O HDInsight fornece vários plug-ins IDE que são úteis para criar e enviar aplicativos a um cluster Spark do HDInsight. Para obter mais informações, confira Usar o Azure Toolkit for IntelliJ IDEA, Usar as Ferramentas do Spark e Hive para VS Code e Usar o Azure Toolkit for Eclipse.

| Concurrent Queries |Spark clusters in HDInsight support concurrent queries. Essa funcionalidade permite que várias consultas de um usuário ou várias consultas de vários usuários e aplicativos compartilhem os mesmos recursos de cluster. Você pode escolher os dados em cache na memória ou em SSDs anexados a nós do cluster. O armazenamento em cache na memória proporciona o melhor desempenho das consultas, porém o custo pode ser alto. O armazenamento em cache oferece uma ótima opção para melhorar o desempenho das consultas, sem necessidade de criar um cluster que caiba todo o conjunto de dados na memória. Confira Aprimorar o desempenho de cargas de trabalho do Apache Spark usando o Cache de E/S do Azure HDInsight. Os clusters Spark no HDInsight fornecem conectores para ferramentas de BI como o Power BI para análise de dados. | | Pre-loaded Anaconda libraries |Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda fornece quase 200 bibliotecas de machine learning, análise de dados, visualização, etc. O HDInsight permite alterar o número de nós de cluster dinamicamente com o recurso de dimensionamento automático. Confira Escalar automaticamente os clusters do Azure HDInsight. Além disso, os clusters Spark podem ser removidos sem perda de dados, pois todos os dados ficam armazenados no Armazenamento do Azure ou no Data Lake Storage. Os clusters Spark no HDInsight vêm com suporte 24 horas por dia, 7 dias por semana, e um SLA de 99,9% de tempo de atividade. |

Os clusters do Apache Spark no HDInsight incluem os seguintes componentes que estão disponíveis nos clusters por padrão.

Os clusters Spark no HDInsight contam com um driver ODBC para conectividade de ferramentas de BI, como o Microsoft Power BI.

Arquitetura do cluster Spark

A arquitetura do HDInsight Spark

É fácil de entender os componentes do Spark entendendo como o Spark funciona nos clusters HDInsight.

Os aplicativos Spark são executados como conjuntos independentes de processos em um cluster. Coordenado pelo objeto SparkContext em seu programa principal (chamado de programa de driver).

O SparkContext pode se conectar a vários tipos de gerenciadores de cluster, que fornecem recursos entre aplicativos. Esses gerenciadores de cluster incluem o Apache Mesos, o Apache Hadoop YARN ou o gerenciador de cluster do Spark. No HDInsight, o Spark é executado usando o gerenciador de cluster YARN. Após a conexão, o Spark adquire executores em nós de trabalhado no cluster, 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 de trabalho. Em seguida, o SparkContext coleta os resultados das operações. Os nós de trabalho leem e gravam dados do Sistema de Arquivos Distribuído do Hadoop. Os nós de trabalho também armazenam dados transformados na memória em cache como RDDs (Conjuntos de Dados Distribuído Resiliente).

O SparkContext se conecta ao mestre do Spark e é responsável por converter um aplicativo em um DAG (grafo direcionado acíclico) de tarefas individuais. Tarefas que são executadas dentro de um processo de executor nos nós de trabalho. 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 Spark no HDInsight

Os clusters Spark no HDInsight ativam os seguintes cenários principais:

Análise de dados interativa e BI

O Apache Spark no HDInsight armazena dados no Armazenamento de Blobs do Azure, no Azure Data Lake Gen2 ou no Azure Data Lake Storage Gen2. Os especialistas de negócios e os principais tomadores de decisões podem analisar e criar relatórios sobre esses dados. Além disso, podem usar o Microsoft Power BI para criar relatórios interativos com base nos dados analisados. Os analistas podem começar com dados não estruturados/semiestruturados no armazenamento de cluster, definir um esquema para os dados usando blocos de anotações e, em seguida, criar modelos de dados usando o Microsoft Power BI. Os clusters do Spark no HDInsight também são compatíveis com muitas ferramentas de BI de terceiros. Um exemplo dessas ferramentas é o Tableau, e elas facilitam o trabalho de analistas de dados, especialistas de negócios e tomadores de decisões importantes.

Machine Learning do Spark

O Apache Spark acompanha o MLlib. O MLlib é uma biblioteca de machine learning criada com base no Spark que pode ser usada em um cluster do Spark no HDInsight. O cluster Spark no HDInsight também inclui o Anaconda, uma distribuição do Python com diferentes tipos de pacotes para machine learning. Ele conta também com suporte interno para notebooks do Jupyter e do Zeppelin, fornecendo a você um ambiente para criar aplicativos de aprendizado de máquina.

Análise de dados de streaming e em tempo real do Spark

Os clusters Spark no HDInsight dão suporte avançado para criar soluções de análise em tempo real. O Spark já tem conectores para ingerir dados de várias fontes, como Kafka, Flume, Twitter, ZeroMQ ou soquetes TCP. O Spark no HDInsight adiciona suporte de primeira classe para ingestão de dados dos Hubs de Eventos do Azure. Hubs de Eventos é o serviço de enfileiramento de mensagens mais usado no Azure. A compatibilidade total com os Hubs de Eventos torna os clusters Spark no HDInsight a plataforma ideal para a criação de pipeline de análise em tempo real.

Próximas etapas

Nesta visão geral, você obtém algumas noções básicas do Apache Spark no Azure HDInsight. Você pode usar os seguintes artigos para saber mais sobre o Apache Spark no HDInsight e pode criar um cluster HDInsight Spark e executar outras consultas do Spark de exemplo: