Co je Apache Spark ve službě Azure HDInsightWhat is Apache Spark in Azure HDInsight

Apache Spark je paralelní procesor pro zpracování, který podporuje zpracování v paměti, aby se zvýšil výkon analytických aplikací s velkým objemem dat.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Apache Spark ve službě Azure HDInsight je implementace Apache Sparku v cloudu od Microsoftu.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. HDInsight usnadňuje vytvoření a konfiguraci clusteru Spark v Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Clustery Spark v HDInsight jsou kompatibilní s Azure Storage a Azure Data Lake Storage.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Clustery HDInsight Spark proto můžete použít ke zpracování dat uložených v Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Součásti a informace o verzi najdete v tématu Apache Hadoop komponenty a verze ve službě Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: jednotné rozhraní

Co je Apache Spark?What is Apache Spark?

Spark poskytuje primitivy pro clusterové výpočty v paměti.Spark provides primitives for in-memory cluster computing. Úloha Spark může načítat data, ukládat je do paměti a opakovaně je dotazovat.A Spark job can load and cache data into memory and query it repeatedly. Výpočetní prostředí je mnohem rychlejší než aplikace založené na discích, jako je Hadoop, které sdílí data prostřednictvím systému Hadoop Distributed File System (HDFS).In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). Spark se také integruje do programovacího jazyka Scala a díky tomu umožňuje pracovat s distribuovanými datovými sadami stejně jako s místními kolekcemi.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Není nutné strukturovat všechno jako mapovací a redukční operace.There's no need to structure everything as map and reduce operations.

Tradiční MapReduce vs. Spark

Clustery Spark ve službě HDInsight nabízejí plně spravovanou službu Spark.Spark clusters in HDInsight offer a fully managed Spark service. Tady najdete výhody, které přináší vytvoření clusteru Spark ve službě HDInsight.Benefits of creating a Spark cluster in HDInsight are listed here.

FunkceFeature PopisDescription
Snadné vytvořeníEase creation Nový cluster Spark ve službě HDInsight můžete vytvořit během několika minut pomocí webu Azure Portal, Azure PowerShellu nebo sady HDInsight .NET SDK.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Viz Začínáme s clusterem Apache Spark v HDInsight.See Get started with Apache Spark cluster in HDInsight.
Snadné používáníEase of use Cluster Spark v HDInsight zahrnuje notebooky Jupyter a Apache Zeppelin.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Tyto poznámkové bloky můžete použít pro interaktivní zpracování dat a vizualizaci.You can use these notebooks for interactive data processing and visualization.
Rozhraní REST APIREST APIs Clustery Spark v HDInsight zahrnují Apache Livy, server pro Spark založený na REST API, který umožňuje vzdáleně odesílat a monitorovat úlohy.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Přečtěte si téma použití Apache Spark REST API k odeslání vzdálených úloh do clusteru HDInsight Spark.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Podpora Azure Data Lake StorageSupport for Azure Data Lake Storage Clustery Spark v HDInsight můžou použít Azure Data Lake Storage jako primární úložiště i pro další úložiště.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Další informace o Data Lake Storage najdete v tématu přehled Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integrace se službami AzureIntegration with Azure services Cluster Spark ve službě HDInsight se dodává s konektorem k Azure Event Hubs.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Můžete vytvářet aplikace streamování pomocí Event Hubs kromě Apache Kafka, která je již k dispozici jako součást Sparku.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Podpora pro ML ServerSupport for ML Server Podpora pro ML Server v HDInsightu je k dispozici jako typ clusteru ML Services.Support for ML Server in HDInsight is provided as the ML Services cluster type. Cluster ML Services můžete nastavit pro spouštění distribuovaných výpočtů v R s rychlostí, kterou zajišťuje cluster Spark.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Další informace najdete v tématu co je ml Services ve službě Azure HDInsight.For more information, see What is ML Services in Azure HDInsight.
Integrace v prostředí IDE třetích stranIntegration with third-party IDEs HDInsight poskytuje několik modulů plug-in pro integrovaná vývojová prostředí (IDE), které jsou užitečné k vytváření a odesílání aplikací do clusteru HDInsight Spark.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Další informace najdete v tématu použití Azure Toolkit for INTELLIJ nápadu, použití nástrojů pro & pro Spark pro VSCodea použití Azure Toolkit for Eclipse.For more information, see Use Azure Toolkit for IntelliJ IDEA, Use Spark & Hive Tools for VSCode, and Use Azure Toolkit for Eclipse.
Počet souběžných dotazůConcurrent Queries Clustery Spark v HDInsight podporují souběžné dotazy.Spark clusters in HDInsight support concurrent queries. Tato schopnost umožňuje sdílení stejných prostředků clusteru pro více dotazů od jednoho uživatele nebo více dotazů od různých uživatelů a aplikací.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Ukládání do mezipaměti na SSDCaching on SSDs Data do mezipaměti můžete ukládat volitelně buď do paměti nebo na SSD disky připojené k uzlům clusteru.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. Ukládání do mezipaměti zajišťuje nejlepší výkon dotazů, ale může být nákladné.Caching in memory provides the best query performance but could be expensive. Ukládání na disky SSD poskytuje skvělou možnost pro zlepšení výkonu dotazů, aniž by bylo nutné vytvořit cluster velikosti, která je potřeba pro umístění celé datové sady do paměti.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.
Integrace s nástroji BIIntegration with BI Tools Clustery Spark ve službě HDInsight nabízí konektory pro nástroje BI, například Power BI pro analýzu dat.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Předem zavedené knihovny AnacondaPre-loaded Anaconda libraries Clustery Spark ve službě HDInsight obsahují předinstalované knihovny Anaconda.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda poskytuje téměř 200 knihoven pro machine learning, analýzy dat, vizualizace atd.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, etc.
ŠkálovatelnostScalability HDInsight umožňuje změnit počet uzlů clusteru.HDInsight allows you to change the number of cluster nodes. Clustery Spark je také možné vyřadit bez ztráty dat, protože všechna data jsou uložená v Azure Storage nebo 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.
SLASLA Clustery Spark ve službě HDInsight přináší nepřetržitou podporu a smlouvu SLA zajišťující 99,9% dostupnost.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Clustery Apache Spark v HDInsight obsahují následující součásti, které jsou ve výchozím nastavení k dispozici v clusterech.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Clustery Spark ve službě HDInsight také poskytují ovladač ODBC umožňující připojení ke clusterům Spark ve službě HDInsight z nástrojů BI, například 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.

Architektura clusteru SparkSpark cluster architecture

Architektura HDInsight Sparku

Komponenty Sparku snadno pochopíte, když porozumíte způsobu, jakým se Spark spouští na clusterech HDInsight.It is easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Aplikace Spark se v clusteru spouští jako nezávislé sady procesů, které koordinuje objekt SparkContext v hlavním programu (označuje se jako řídicí program).Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

SparkContext se může připojit k několika typům správců clusterů, kteří přidělují prostředky napříč aplikacemi.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Tito správci clusteru zahrnují Apache Mesos, Apache Hadoop nitěnebo Správce clusteru Spark.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. V HDInsight se Spark spouští pomocí správce clusteru YARN.In HDInsight, Spark runs using the YARN cluster manager. Po připojení Spark získá exekutory na pracovních uzlech v clusteru, což jsou procesy, které provádí výpočty a ukládají data pro vaši aplikaci.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Pak do exekutorů odešle kód vaší aplikace (definovaný v souborech JAR nebo Pythonu předaných do objektu SparkContext).Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Nakonec SparkContext odešle do exekutorů úlohy ke spuštění.Finally, SparkContext sends tasks to the executors to run.

SparkContext spouští hlavní funkci uživatele a provádí různé paralelní operace na pracovních uzlech.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Potom SparkContext shromažďuje výsledky těchto operací.Then, the SparkContext collects the results of the operations. Pracovní uzly čtou a zapisují data z a do systému Hadoop Distributed File System.The worker nodes read and write data from and to the Hadoop distributed file system. Pracovní uzly také ukládají transformovaná data do paměti jako sady RDD (Resilient Distributed Dataset).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

SparkContext se připojuje k hlavnímu uzlu Sparku a je zodpovědný za převod aplikace do orientovaného acyklického grafu (DAG) jednotlivých úloh, které se provádějí v rámci procesu exekutora na pracovních uzlech.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. Každá aplikace získá vlastní procesy exekutora, které zůstávají v provozu po dobu trvání celé aplikace a spouští úlohy ve více vláknech.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Případy použití Sparku ve službě HDInsightSpark in HDInsight use cases

Clustery Spark v HDInsight podporují následující klíčové scénáře:Spark clusters in HDInsight enable the following key scenarios:

  • Interaktivní analýzu dat a BIInteractive data analysis and BI

    Apache Spark v HDInsight ukládá data do Azure Storage nebo Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Obchodní specialisté a osoby provádějící klíčová rozhodnutí analyzují a vytváří z těchto dat sestavy a používají Microsoft Power BI pro vytváření interaktivních sestav z analyzovaných dat.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. Analytici mohou začínat z nestrukturovaných / částečně strukturovaných dat v úložišti clusteru, definovat schéma pro data s využitím poznámkových bloků a následně vytvořit modely dat pomocí 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. Clustery Spark ve službě HDInsight podporují také různé nástroje BI třetích stran, například Tableau, a usnadňují tak práci datovým analytikům, obchodním specialistům a osobám provádějícím klíčová rozhodnutí.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.

    Kurz: Vizualizace dat Sparku pomocí Power BITutorial: Visualize Spark data using Power BI

  • Spark Machine LearningSpark Machine Learning

    Systém Apache Spark je vybavený knihovnou MLlib pro strojové učení, jejímž základem je Spark a kterou můžete používat z clusteru Spark v 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. Cluster Spark ve službě HDInsight obsahuje také Anacondu, distribuci jazyka Python s různými balíčky pro strojové učení.Spark cluster in HDInsight also includes Anaconda, a Python distribution with a variety of packages for machine learning. Spojte tyto možnosti s integrovanou podporou pro poznámkové bloky Jupyter a Zeppelin a máte prostředí pro tvorbu aplikací strojového učení.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Kurz: Předpověď sestavování teplot pomocí dat TVKTutorial: Predict building temperatures using HVAC data
    Kurz: Předpověď výsledků kontroly potravinTutorial: Predict food inspection results

  • Vysílání datových proudů a analýza dat v reálném čase ve SparkuSpark streaming and real-time data analysis

    Clustery Spark v HDInsight nabízí bohatou podporu pro vytváření řešení pro analýzu v reálném čase.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Zatímco Spark již obsahuje konektory pro načítání dat z mnoha zdrojů, například soketů Kafka, Flume, Twitter, ZeroMQ nebo TCP, Spark v HDInsight přidává prvotřídní podporu pro příjem dat z Azure Event Hubs.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. Event Hubs je nejpoužívanější službou řazení front v Azure.Event Hubs is the most widely used queuing service on Azure. Díky integrované podpoře služby Event Hubs představují clustery Spark ve službě HDInsight ideální platformu pro vytvoření kanálu k analýze dat v reálném čase.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Kde mám začít?Where do I start?

Další informace o Apache Spark ve službě HDInsight najdete v následujících článcích:You can use the following articles to learn more about Apache Spark in HDInsight:

Další krokyNext Steps

V tomto článku jste získali základní přehled Apache Sparku ve službě Azure HDInsight.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. V dalším článku se dozvíte, jak vytvořit cluster HDInsight Spark a spustit několik dotazů Spark SQL:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: