O que é o Apache Spark no Azure HDInsightWhat is Apache Spark in Azure HDInsight

Apache Spark é um quadro de processamento paralelo que suporta o processamento na memória para aumentar o desempenho de aplicações analíticas 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 da Microsoft do Apache Spark na cloud.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. O HDInsight permite criar e configurar clusters do Spark mais facilmente na cloud.HDInsight makes it easier to create and configure a Spark cluster in Azure. Os clusters de faíscas no HDInsight são compatíveis com o Armazenamento de Dados Azure e o Armazenamento de Lagos De Dados Azure.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Por isso, pode utilizá-los para processar os dados armazenados no Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Para os componentes e informações de versão, consulte componentes e versões Apache Hadoop no Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: uma arquitetura unificada

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

O Spark fornece primitivos para a computação de cluster na memória.Spark provides primitives for in-memory cluster computing. Os trabalhos do Spark podem carregar e colocar os dados em cache na memória e consultá-los repetidamente.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 aplicações baseadas em discos, como hadoop, que partilha dados através do sistema de ficheiros distribuídos hadoop (HDFS).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 na linguagem de programação Scala, o que lhe possibilita manipular 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 estruturar tudo como operações de mapa e redução.There's no need to structure everything as map and reduce operations.

Mapa tradicionalReduzir vs. Faísca

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

FuncionalidadeFeature DescriçãoDescription
Criação fácilEase creation 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.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Ver Começar com o cluster Apache Spark em HDInsight.See Get started with Apache Spark cluster in HDInsight.
Facilidade de utilizaçãoEase of use O cluster de faíscas no HDInsight inclui os cadernos Jupyter e Apache Zeppelin.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Pode utilizar estes blocos de notas para o processamento e a visualização de dados interativos.You can use these notebooks for interactive data processing and visualization. Consulte os cadernos Apache Zeppelin com dados de Apache Spark e Load e execute consultas num cluster Apache Spark.See Use Apache Zeppelin notebooks with Apache Spark and Load data and run queries on an Apache Spark cluster.
APIs RESTREST APIs Os clusters de faíscas no HDInsight incluem Apache Livy, um servidor de trabalho spark baseado em REST API para submeter e monitorizar remotamente trabalhos.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Consulte API De repouso Apache Spark PARA submeter trabalhos remotos a um cluster hDInsight Spark.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Suporte para armazenamento de lagos de dados azureSupport for Azure Data Lake Storage Os clusters de faíscas no HDInsight podem usar o Armazenamento do Lago De Dados Azure como armazenamento primário ou armazenamento adicional.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Para mais informações sobre o Armazenamento de Data Lake, consulte a visão geral do armazenamento do Lago De Dados Azure.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integração com os serviços do AzureIntegration with Azure services O cluster do Spark no HDInsight é fornecido com um conector para os Hubs de Eventos do Azure.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Pode construir aplicações de streaming utilizando os Centros de Eventos.You can build streaming applications using the Event Hubs. Incluindo Apache Kafka, que já está disponível como parte da Spark.Including Apache Kafka, which is already available as part of Spark.
Suporte do ML ServerSupport for ML Server O suporte do ML Server no HDInsight é prestado como o tipo de cluster dos Serviços ML.Support for ML Server in HDInsight is provided as the ML Services cluster type. Pode configurar um cluster dos Serviços ML para executar cálculos R distribuídos com as velocidades prometidas com um cluster do Spark.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Para mais informações, consulte o que é ml Services no 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 proporciona vários plug-ins de IDE que são úteis para criar e submeter aplicações para um cluster do Spark no HDInsight.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Para mais informações, consulte Use Azure Toolkit para IntelliJ IDEA, Use Spark & Hive Tools para VSCode, e use o kit de ferramentas Azure para Eclipse.For more information, see Use Azure Toolkit for IntelliJ IDEA, Use Spark & Hive Tools for VSCode, and Use Azure Toolkit for Eclipse.
Consultas em SimultâneoConcurrent Queries Os clusters do Spark no HDInsight suportam consultas em simultâneo.Spark clusters in HDInsight support concurrent queries. 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.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Colocação em cache em SSDsCaching on SSDs Pode optar por colocar os dados em cache na memória ou em SSDs ligados aos nós do cluster.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. A colocação em cache na memória oferece o melhor desempenho às consultas, mas pode ser dispendiosa.Caching in memory provides the best query performance but could be expensive. 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.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. Ver Melhorar o desempenho das cargas de trabalho da Apache Spark utilizando o Azure HDInsight IO Cache.See Improve performance of Apache Spark workloads using Azure HDInsight IO Cache.
Integração com Ferramentas de BIIntegration with BI Tools Os clusters do 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 do Spark no HDInsight incluem bibliotecas Anaconda pré-instaladas.Spark clusters in HDInsight come with Anaconda libraries pre-installed. A Anaconda fornece cerca de 200 bibliotecas para machine learning, análise de dados, visualização, e assim por diante.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, and so on.
AdaptabilidadeAdaptability O HDInsight permite alterar o número de nós de cluster de forma dinâmica com a função De escala Automática.HDInsight allows you to change the number of cluster nodes dynamically with the Autoscale feature. Consulte automaticamente a escala dos clusters Azure HDInsight.See Automatically scale Azure HDInsight clusters. Além disso, os clusters Spark podem ser eliminados sem perda de dados, uma vez que todos os dados são armazenados em Armazenamento azure ou armazenamento de data lake.Also, Spark clusters can be dropped with no loss of data since all the data is stored in Azure Storage or Data Lake Storage.
SLASLA 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.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

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

HDInsight Spark clusters um controlador ODBC para conectividade a partir de ferramentas BI como Microsoft Power BI.HDInsight Spark clusters an ODBC driver for connectivity from BI tools such as Microsoft Power BI.

Arquitetura de cluster do SparkSpark cluster architecture

A arquitetura do Spark no HDInsight

É fácil entender os componentes da Spark compreendendo como a Spark funciona em clusters HDInsight.It's easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

As aplicações de faísca funcionam como conjuntos independentes de processos num cluster.Spark applications run as independent sets of processes on a cluster. Coordenado pelo objeto SparkContext no seu programa principal (chamado programa de condutor).Coordinated by the SparkContext object in your main program (called the driver program).

O SparkContext pode ligar-se a vários tipos de gestores de clusters, que dão recursos através de aplicações.The SparkContext can connect to several types of cluster managers, which give resources across applications. Estes gestores de cluster incluem Apache Mesos, Apache Hadoop YARN,ou o gestor de cluster Spark.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. No HDInsight, o Spark é executado com o gestor de clusters YARN.In HDInsight, Spark runs using the YARN cluster manager. 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.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, envia o código da aplicação (definido pelos ficheiros JAR ou Python transmitidos para o SparkContext) aos 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 os executores executarem.Finally, SparkContext sends tasks to the executors to run.

O SparkContext executa a função principal do utilizador, bem como as diversas 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, recolhe os resultados das operações.Then, the SparkContext collects the results of the operations. Os nódosos dos trabalhadores lêem e escrevem dados de e para o sistema de ficheiros distribuídos hadoop.The worker nodes read and write data from and to the Hadoop distributed file system. Também colocam em cache os dados transformados na memória como Conjuntos de Dados Distribuídos Resilientes (RDDs).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

O SparkContext liga-se ao mestre Spark e é responsável pela conversão de uma aplicação num gráfico direcionado (DAG) de tarefas individuais.The SparkContext connects to the Spark master and is responsible for converting an application to a directed graph (DAG) of individual tasks. Tarefas que são executadas dentro de um processo de executor nos nódosos dos trabalhadores.Tasks that get executed within an executor process on the worker nodes. Cada aplicação obtém os seus próprios processos de executor.Each application gets its own executor processes. Que permanecem acordados durante toda a aplicação e executam tarefas em vários fios.Which stay up for the duration of the whole application and run tasks in multiple threads.

Casos de utilização do Spark no HDInsightSpark in HDInsight use cases

Os clusters do Spark no HDInsight permitem os cenários-chave seguintes:Spark clusters in HDInsight enable the following key scenarios:

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

A Apache Spark em HDInsight armazena dados no Armazenamento Azure ou no Armazenamento do Lago Azure Data.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Especialistas em negócios e decisores-chave podem analisar e construir relatórios sobre esses dados.Business experts and key decision makers can analyze and build reports over that data. E use o Microsoft Power BI para construir relatórios interativos a partir dos dados analisados.And use Microsoft Power BI to build interactive reports from the analyzed data. 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.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 de faíscas no HDInsight também suportam uma série de ferramentas BI de terceiros.Spark clusters in HDInsight also support a number of third-party BI tools. Como o Tableau, facilitando a vida aos analistas de dados, aos especialistas em negócios e aos decisores-chave.Such as Tableau, making it easier for data analysts, business experts, and key decision makers.

Spark Machine LearningSpark Machine Learning

Apache Spark vem com MLlib.Apache Spark comes with MLlib. MLlib é uma biblioteca de machine learning construída em cima de Spark que você pode usar a partir de um cluster Spark em HDInsight.MLlib is a machine learning library built on top of Spark that you can use from a Spark cluster in HDInsight. O cluster de faíscas no HDInsight também inclui a Anaconda, uma distribuição Python com diferentes tipos de pacotes para aprendizagem automática.Spark cluster in HDInsight also includes Anaconda, a Python distribution with different kinds of packages for machine learning. E com apoio incorporado para os cadernos Jupyter e Zeppelin, você tem um ambiente para criar aplicações de aprendizagem automática.And with built-in support for Jupyter and Zeppelin notebooks, you have an environment for creating machine learning applications.

Análise de dados de transmissão em fluxo e em tempo real do SparkSpark streaming and real-time data analysis

Os clusters do Spark no HDInsight oferecem um suporte avançado para a criação de soluções de análise em tempo real.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. A Spark já tem conectores para ingerir dados de muitas fontes como kafka, Flume, Twitter, ZeroMQ ou tomadas TCP.Spark already has connectors to ingest data from many sources like Kafka, Flume, Twitter, ZeroMQ, or TCP sockets. A Spark in HDInsight adiciona suporte de primeira classe para ingerir dados dos Hubs de Eventos Azure.Spark in HDInsight adds first-class support for ingesting data from Azure Event Hubs. Os Hubs de Eventos são o serviço de colocação em fila mais utilizado no Azure.Event Hubs is the most widely used queuing service on Azure. Ter suporte completo para Os Hubs de Eventos faz dos clusters Spark no HDInsight uma plataforma ideal para a construção de um pipeline de análise em tempo real.Having complete support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Por onde devo começar?Where do I start?

Pode utilizar 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:

Passos SeguintesNext Steps

Nesta descrição geral, obteve 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. Aprenda a criar um cluster HDInsight Spark e execute algumas consultas Spark SQL:Learn how to create an HDInsight Spark cluster and run some Spark SQL queries: