O que é Apache Spark em Azure HDInsight

O Apache Spark é uma estrutura de processamento paralelo que suporta processamento na memória para aumentar o desempenho de aplicativos analíticos 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 configuração de clusters do Spark, permitindo que você personalize e use um ambiente Spark completo 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 analíticos no Azure.

  • O Apache Spark no Azure Databricks usa clusters do Spark para fornecer um espaço de trabalho interativo que permite a colaboração entre seus usuários para ler dados de várias fontes de dados e transformá-los em informações inovadoras.

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

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

Spark: a unified framework.

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

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 as informações de controle de versão, consulte Componentes e versões do Apache Hadoop no Azure HDInsight.

O que é o Apache Spark?

O Spark fornece primitivos para a computação de cluster na memória. Um trabalho do Spark pode carregar e colocar em cache dados na memória e consultá-los repetidamente. A computação na memória é muito mais rápida do que os aplicativos baseados em disco, como o Hadoop, que compartilha dados por meio do sistema de arquivos distribuídos (HDFS) Hadoop. O Spark também se integra na linguagem de programação Scala, o que lhe possibilita manipular conjuntos de dados distribuídos, como coleções locais. Não é necessário estruturar tudo como operações de mapa e redução.

Traditional MapReduce vs. Spark.

Os clusters do Spark no HDInsight oferecem um serviço Spark completamente gerido. Os benefícios da criação de um cluster do Spark no HDInsight estão listados aqui.

Funcionalidade Description
Criação fácil Pode criar um cluster do Spark novo no HDInsight em apenas alguns minutos com o portal do Azure, o Azure PowerShell ou o SDK .NET do HDInsight. Consulte Introdução ao cluster Apache Spark no HDInsight.
Facilidade de utilização O cluster Spark no HDInsight inclui os Notebooks Jupyter e os Notebooks Apache Zeppelin. Pode utilizar estes blocos de notas para o processamento e a visualização de dados interativos. Consulte Usar notebooks 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 o Apache Livy, um servidor de tarefas Spark baseado em API REST para enviar e monitorar trabalhos remotamente. Consulte 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 Gen1/Gen2 como armazenamento principal ou adicional. Para obter mais informações sobre o Data Lake Storage Gen1, consulte Azure Data Lake Storage Gen1. Para obter mais informações sobre o Data Lake Storage Gen2, consulte Azure Data Lake Storage Gen2.
Integração com os serviços do Azure O cluster do Spark no HDInsight é fornecido com um conector para os Hubs de Eventos do Azure. Você pode criar aplicativos de streaming usando os Hubs de Eventos. Incluindo o Apache Kafka, que já está disponível como parte do Spark.
Integração com IDEs de terceiros O HDInsight proporciona vários plug-ins de IDE que são úteis para criar e submeter aplicações para um cluster do Spark no HDInsight. Para obter mais informações, consulte Usar o Kit de Ferramentas do Azure para IntelliJ IDEA, Usar ferramentas do Spark & Hive para VSCode e Usar o Kit de Ferramentas do Azure para Eclipse.
Consultas em Simultâneo Os clusters do Spark no HDInsight suportam consultas em simultâneo. Esta capacidade permite que várias consultas de um utilizador ou várias consultas de vários utilizadores e aplicações partilhem os mesmos recursos de cluster.
Colocação em cache em SSDs Pode optar por colocar os dados em cache na memória ou em SSDs ligados aos nós do cluster. A colocação em cache na memória oferece o melhor desempenho às consultas, mas pode ser dispendiosa. A colocação em cache em SSDs é uma excelente opção para melhorar o desempenho das consultas sem que seja necessário criar um cluster com tamanho suficiente para guardar todo o conjunto de dados na memória. Consulte Melhorar o desempenho de cargas de trabalho do Apache Spark usando o Cache de E/S do Azure HDInsight.
Integração com Ferramentas de BI Os clusters do Spark no HDInsight fornecem conectores para ferramentas de BI, como o Power BI, para análise de dados.
Bibliotecas Anaconda pré-carregadas Os clusters do Spark no HDInsight incluem bibliotecas Anaconda pré-instaladas. A Anaconda fornece cerca de 200 bibliotecas para aprendizado de máquina, análise de dados, visualização e assim por diante.
Adaptabilidade O HDInsight permite alterar o número de nós de cluster dinamicamente com o recurso Dimensionamento automático. Consulte Dimensionar automaticamente clusters do Azure HDInsight. Além disso, os clusters do Spark podem ser descartados sem perda de dados, pois todos os dados são armazenados no armazenamento de Blob do Azure, no Azure Data Lake Storage Gen1 ou no Azure Data Lake Storage Gen2.
SLA Os clusters do Spark no HDInsight incluem suporte 24 horas por dia, 7 dias por semana e um SLA de 99,9% de tempo ativo.

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

O HDInsight Spark agrupa um driver ODBC para conectividade de ferramentas de BI, como o Microsoft Power BI.

Arquitetura de cluster do Spark

The architecture of HDInsight Spark.

É fácil entender os componentes do Spark entendendo como o Spark é executado em 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 Apache Mesos, Apache Hadoop YARN ou o gerenciador de cluster Spark. No HDInsight, o Spark é executado com o gestor de clusters YARN. Assim que estiver ligado, o Spark adquire executores nos nós de trabalhado do cluster, que são os processos que executam cálculos e armazenam os dados da sua aplicação. Em seguida, envia o código da aplicação (definido pelos ficheiros JAR ou Python transmitidos para o SparkContext) aos executores. Por fim, o SparkContext envia tarefas para os executores executarem.

O SparkContext executa a função principal do utilizador, bem como as diversas operações paralelas nos nós de trabalho. Em seguida, recolhe os resultados das operações. Os nós de trabalho leem e gravam dados de e para o sistema de arquivos distribuído Hadoop. Também colocam em cache os dados transformados na memória como Conjuntos de Dados Distribuídos Resilientes (RDDs).

O SparkContext se conecta ao mestre do Spark e é responsável por converter um aplicativo em um gráfico direcionado (DAG) de tarefas individuais. Tarefas que são executadas dentro de um processo de execução nos nós de trabalho. Cada aplicativo recebe seus próprios processos executores. Que permanecem ativos durante todo o aplicativo e executam tarefas em vários threads.

Casos de utilização do Spark no HDInsight

Os clusters do Spark no HDInsight permitem os cenários-chave seguintes:

Análise de dados interativa e BI

O Apache Spark no HDInsight armazena dados no Armazenamento de Blobs do Azure, no Azure Data Lake Gen1 ou no Azure Data Lake Storage Gen2. Especialistas em negócios e tomadores de decisão importantes podem analisar e criar relatórios sobre esses dados. E use o Microsoft Power BI para criar relatórios interativos a partir dos dados analisados. Os analistas podem partir de dados não estruturados/semiestruturados no armazenamento de clusters, definir um esquema para os dados com os blocos de notas e, em seguida, criar modelos de dados através do Microsoft Power BI. Os clusters Spark no HDInsight também suportam muitas ferramentas de BI de terceiros. Como o Tableau, facilitando a vida de analistas de dados, especialistas em negócios e tomadores de decisão importantes.

Spark Machine Learning

O Apache Spark vem com MLlib. MLlib é uma biblioteca de aprendizado de máquina construída sobre o Spark que você pode usar a partir de um cluster do Spark no HDInsight. O cluster Spark no HDInsight também inclui o Anaconda, uma distribuição Python com diferentes tipos de pacotes para aprendizado de máquina. E com suporte integrado para notebooks Jupyter e Zeppelin, você tem um ambiente para criar aplicativos de aprendizado de máquina.

Análise de dados de transmissão em fluxo e em tempo real do Spark

Os clusters do Spark no HDInsight oferecem um suporte avançado para a criação de soluções de análise em tempo real. O Spark já tem conectores para ingerir dados de muitas fontes, como Kafka, Flume, Twitter, ZeroMQ ou soquetes TCP. O Spark no HDInsight adiciona suporte de primeira classe para a ingestão de dados dos Hubs de Eventos do Azure. Os Hubs de Eventos são o serviço de colocação em fila mais utilizado no Azure. Ter suporte completo para Hubs de Eventos torna os clusters Spark no HDInsight uma plataforma ideal para criar pipeline de análise em tempo real.

Passos Seguintes

Nesta visão geral, você tem uma compreensão básica 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 ainda mais algumas consultas Spark de exemplo: