O que é o Apache Spark no Azure HDInsightWhat is Apache Spark in 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.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. O Apache Spark no Azure HDInsight é a implementação do Apache Spark na nuvem, realizada pela Microsoft.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. O HDInsight facilita a criação e a configuração de um cluster Spark no Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Os clusters Spark no HDInsight são compatíveis com o Armazenamento do Azure e o Azure Data Lake Storage.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Portanto, você pode usar clusters Spark do HDInsight para processar os dados armazenados no Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Para obter os componentes e informações de versão, confira Componentes e versões do Apache Hadoop no Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: uma estrutura unificada

O que é o Apache Spark?What is Apache Spark?

O Spark oferece primitivos para computação de cluster na memória.Spark provides primitives for in-memory cluster computing. Um trabalho do Spark pode carregar e armazenar dados em cache na memória e consultá-los várias vezes.A Spark job can load and cache data into memory and query it repeatedly. 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).In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). 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.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Não é necessário para estruturar tudo como operações de mapeamento e redução.There's no need to structure everything as map and reduce operations.

MapReduce tradicional X Spark

Os clusters Spark no HDInsight oferecem um serviço Spark totalmente gerenciado.Spark clusters in HDInsight offer a fully managed Spark service. Os benefícios da criação de um cluster Spark no HDInsight estão relacionados aqui.Benefits of creating a Spark cluster in HDInsight are listed here.

RecursoFeature DESCRIÇÃODescription
Criação facilitadaEase creation 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.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Confira Introdução ao cluster do Apache Spark no HDInsight.See Get started with Apache Spark cluster in HDInsight.
Fácil de usoEase of use O cluster Spark no HDInsight inclui Jupyter e Apache Zeppelin notebooks.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Você pode usar esses blocos de anotações para processar e visualizar dados interativamente.You can use these notebooks for interactive data processing and visualization.
APIs RESTREST APIs Os clusters Spark no HDInsight incluem Apache Livy, um servidor de trabalho do Spark baseado em API REST para enviar e monitorar trabalhos remotamente.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Veja Usar a API REST do Apache Spark para enviar trabalhos remotos para um cluster do HDInsight Spark.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Suporte ao Azure Data Lake StorageSupport for Azure Data Lake Storage Os clusters Spark no HDInsight podem usar o Azure Data Lake Storage como o armazenamento primário ou um armazenamento adicional.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Para obter mais informações sobre o Data Lake Storage, confira Visão geral do Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integração com serviços do AzureIntegration with Azure services O cluster Spark no HDInsight é fornecido com um conector para Hubs de Eventos do Azure.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Você pode criar aplicativos de fluxo contínuo usando os Hubs de Eventos, além do Apache Kafka, que já está disponível como parte do Spark.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Suporte para ML ServerSupport for ML Server O suporte para ML Server no HDInsight é fornecido como o tipo de cluster ML Services.Support for ML Server in HDInsight is provided as the ML Services cluster type. Você pode configurar um cluster de ML Services para executar cálculos R distribuídos com as velocidades prometidas com um cluster Spark.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Para obter mais informações, consulte O que são os Serviços de ML no Microsoft Azure HDInsight?.For more information, see What is ML Services in Azure HDInsight.
Integração com IDEs de terceirosIntegration with third-party IDEs O HDInsight fornece vários plug-ins IDE que são úteis para criar e enviar aplicativos a um cluster Spark do HDInsight.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Para saber mais, confira Use Azure Toolkit for IntelliJ IDEA (Usar o Azure Toolkit for IntelliJ IDEA), Use HDInsight for VSCode (Usar o HDInsight para VSCode) e Use Azure Toolkit for Eclipse (Usar o Azure Toolkit for Eclipse).For more information, see Use Azure Toolkit for IntelliJ IDEA, Use HDInsight for VSCode, and Use Azure Toolkit for Eclipse.
Consultas simultâneasConcurrent Queries Os clusters Spark no HDInsight dão suporte a consultas simultâneas.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.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Armazenamento em cache no SSDsCaching on SSDs Você pode escolher os dados em cache na memória ou em SSDs anexados a nós do cluster.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. O armazenamento em cache na memória proporciona o melhor desempenho das consultas, porém o custo pode ser alto.Caching in memory provides the best query performance but could be expensive. 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.Caching in SSDs provides a great option for improving query performance without the need to create a cluster of a size that is required to fit the entire dataset in memory.
Integração com ferramentas de BIIntegration with BI Tools Os clusters Spark no HDInsight fornecem conectores para ferramentas de BI como o Power BI para análise de dados.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Bibliotecas Anaconda pré-carregadasPre-loaded Anaconda libraries Os clusters Spark no HDInsight são fornecidos com bibliotecas Anaconda pré-instaladas.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda fornece quase 200 bibliotecas de aprendizado de máquina, análise de dados, visualização, etc.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, etc.
EscalabilidadeScalability O HDInsight permite que você altere o número de nós de cluster.HDInsight allows you to change the number of cluster nodes. 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.Also, Spark clusters can be dropped with no loss of data since all the data is stored in Azure Storage or Data Lake Storage.
Contrato de Nível de ServiçoSLA 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.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Os clusters do Apache Spark no HDInsight incluem os seguintes componentes que estão disponíveis nos clusters por padrão.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Os clusters Spark no HDInsight também fornecem um driver ODBC para conectividade com clusters Spark no HDInsight usando ferramentas de BI, como Microsoft Power BI.Spark clusters in HDInsight also provide an ODBC driver for connectivity to Spark clusters in HDInsight from BI tools such as Microsoft Power BI.

Arquitetura do cluster SparkSpark cluster architecture

A arquitetura do HDInsight Spark

É fácil de entender os componentes do Spark entendendo como o Spark funciona nos clusters HDInsight.It is easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Os aplicativos Spark são executados como conjuntos independentes de processos em um cluster, coordenados pelo objeto SparkContext em seu programa principal (chamado de programa de driver).Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

O SparkContext pode se conectar a vários tipos de gerenciadores de cluster, que alocam recursos entre aplicativos.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Esses gerenciadores de cluster incluem o Apache Mesos, o Apache Hadoop YARN ou o gerenciador de cluster do Spark.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. No HDInsight, o Spark é executado usando o gerenciador de cluster YARN.In HDInsight, Spark runs using the YARN cluster manager. 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.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Em seguida, ele envia o código do seu aplicativo (definido pelos arquivos JAR ou Python passados ao SparkContext) para os executores.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Por fim, o SparkContext envia tarefas para serem realizadas pelos executores.Finally, SparkContext sends tasks to the executors to run.

O SparkContext executa a função principal do usuário e as várias operações paralelas nos nós de trabalho.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Em seguida, o SparkContext coleta os resultados das operações.Then, the SparkContext collects the results of the operations. Os nós de trabalho leem e gravam dados do Sistema de Arquivos Distribuído do Hadoop.The worker nodes read and write data from and to the Hadoop distributed file system. Os nós de trabalho também armazenam dados transformados na memória em cache como RDDs (Conjuntos de Dados Distribuído Resiliente).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

O SparkContext conecta-se ao Spark mestre e é responsável por converter um aplicativo em um DAG (grafo direcionado) das tarefas individuais, que por sua vez é executado em um processo de executor nos nós de trabalho.The SparkContext connects to the Spark master and is responsible for converting an application to a directed graph (DAG) of individual tasks that get executed within an executor process on the worker nodes. 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.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Casos de uso do Spark no HDInsightSpark in HDInsight use cases

Os clusters Spark no HDInsight ativam os seguintes cenários principais:Spark clusters in HDInsight enable the following key scenarios:

  • Análise de dados interativa e BIInteractive data analysis and BI

    O Apache Spark no HDInsight armazena dados no Armazenamento do Azure ou no Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Especialistas de negócios e os principais responsáveis por tomar decisões podem analisar e criar relatórios com esses dados e usar o Microsoft Power BI para criar relatórios interativos por meio dos dados analisados.Business experts and key decision makers can analyze and build reports over that data and use Microsoft Power BI to build interactive reports from the analyzed data. 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.Analysts can start from unstructured/semi structured data in cluster storage, define a schema for the data using notebooks, and then build data models using Microsoft Power BI. Os clusters Spark no HDInsight também dão suporte a várias ferramentas de BI de outros fornecedores, como o Tableau, facilitando para os analistas de dados, os especialistas de negócios e os principais responsáveis por tomar decisões.Spark clusters in HDInsight also support a number of third-party BI tools such as Tableau making it easier for data analysts, business experts, and key decision makers.

    Tutorial: Visualizar dados de Spark usando o Power BITutorial: Visualize Spark data using Power BI

  • Machine Learning do SparkSpark Machine Learning

    O Apache Spark vem com MLlib, uma biblioteca de machine learning criada com base no Spark que pode ser usada em um cluster do Spark no HDInsight.Apache Spark comes with MLlib, a machine learning library built on top of Spark that you can use from a Spark cluster in HDInsight. O cluster Spark no HDInsight também inclui o Anaconda, uma distribuição do Python com uma variedade de pacotes para aprendizado de máquina.Spark cluster in HDInsight also includes Anaconda, a Python distribution with a variety of packages for machine learning. Junte isso a um suporte interno para blocos de anotações do Jupyter e do Zeppelin e terá um ambiente para criar aplicativos de aprendizado de máquina.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Tutorial: Prever temperaturas de prédios usando dados do sistema de HVACTutorial: Predict building temperatures using HVAC data
    Tutorial: Prever resultados de inspeção de alimentosTutorial: Predict food inspection results

  • Análise de dados de streaming e em tempo real do SparkSpark streaming and real-time data analysis

    Os clusters Spark no HDInsight dão suporte avançado para criar soluções de análise em tempo real.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Embora o Spark já tenha conectores para receber dados de várias fontes, como soquetes TCP, Flume, Twitter, ZeroMQ ou Kafka, o Spark no HDInsight adiciona suporte de primeira classe para a inserção de dados de hubs de evento do Azure.While Spark already has connectors to ingest data from many sources like Kafka, Flume, Twitter, ZeroMQ, or TCP sockets, Spark in HDInsight adds first-class support for ingesting data from Azure Event Hubs. Hubs de Eventos é o serviço de enfileiramento de mensagens mais usado no Azure.Event Hubs is the most widely used queuing service on Azure. Ter um excelente suporte pronto para uso para Hubs de Eventos torna os clusters Spark no HDInsight a plataforma ideal para a criação de pipeline de análise em tempo real.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Por onde começo?Where do I start?

Você pode usar os seguintes artigos para saber mais sobre Apache Spark no HDInsight:You can use the following articles to learn more about Apache Spark in HDInsight:

Próximas etapasNext Steps

Nesta visão geral, você obtém algumas noções básicas do Apache Spark no Azure HDInsight.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Leia o próximo artigo para saber como criar um cluster Spark do HDInsight e como executar consultas em SQL do Spark:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: