Co to jest platforma Apache Spark w usłudze Azure HDInsightWhat is Apache Spark in Azure HDInsight

Apache Spark jest platformą przetwarzania równoległego, która obsługuje przetwarzanie w pamięci w celu zwiększania wydajności aplikacji do analizy danych big data.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Platforma Apache Spark w usłudze Azure HDInsight to implementacja firmy Microsoft usługi Apache Spark w chmurze.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. Usługa HDInsight ułatwia tworzenie i konfigurowanie klastra Spark na platformie Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Klastry Spark w usłudze HDInsight są zgodne z usługą Azure Storage i usługą Azure Data Lake Storage.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Pozwala to wykorzystywać klastry HDInsight Spark do przetwarzania danych przechowywanych na platformie Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Aby uzyskać informacje na temat wersji i składników, zobacz Wersje i składniki usługi Apache Hadoop w usłudze Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Platforma Spark: ujednolicona struktura

Co to jest platforma Apache Spark?What is Apache Spark?

Platforma Spark udostępnia typom pierwotnym możliwość używania klastrów obliczeniowych korzystających z funkcji przetwarzania w pamięci.Spark provides primitives for in-memory cluster computing. Zadanie platformy Spark może ładować dane do pamięci, buforować je i wielokrotnie przesyłać do nich zapytania.A Spark job can load and cache data into memory and query it repeatedly. Przetwarzanie w pamięci jest znacznie szybsze niż w przypadku aplikacji opartych na operacjach dyskowych, takich jak usługa Hadoop, która udostępnia dane za pomocą rozproszonego systemu plików usługi Hadoop (HDFS).In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). Platforma Spark obsługuje również integrację z językiem programowania Scala, co pozwala manipulować rozproszonymi zestawami danych jak kolekcjami lokalnymi.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Nie ma potrzeby, aby wszystkie elementy były obejmowane strukturami operacji mapowania i redukcji.There's no need to structure everything as map and reduce operations.

Tradycyjna technologia MapReduce a platforma Spark

Klastry Spark w usłudze HDInsight oferują w pełni zarządzaną usługę Spark.Spark clusters in HDInsight offer a fully managed Spark service. Poniżej przedstawiono korzyści związane z utworzeniem klastra Spark w usłudze HDInsight.Benefits of creating a Spark cluster in HDInsight are listed here.

CechaFeature OpisDescription
Łatwość tworzeniaEase creation Nowy klaster Spark w usłudze HDInsight można utworzyć w kilka minut przy użyciu witryny Azure Portal, programu Azure PowerShell lub zestawu .NET SDK usługi HDInsight.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Zobacz Wprowadzenie do klastra Apache Spark w usłudze HDInsight.See Get started with Apache Spark cluster in HDInsight.
Łatwość obsługiEase of use Klaster Spark w usłudze HDInsight zawiera notesy Jupyter i Apache Zeppelin.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Można ich używać do interakcyjnego przetwarzania danych i wizualizacji.You can use these notebooks for interactive data processing and visualization.
Interfejsy API RESTREST APIs Klastry Spark w usłudze HDInsight obejmują Apache Livy, czyli serwer zadań Spark oparty na interfejsie API REST do zdalnego przesyłania i monitorowania zadań.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Zobacz Przesyłanie zadań zdalnych do klastra usługi HDInsight Spark przy użyciu interfejsu API REST platformy Apache Spark.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Obsługa usługi Azure Data Lake StorageSupport for Azure Data Lake Storage Klastry Spark w usłudze HDInsight mogą korzystać z usługi Azure Data Lake Storage zarówno w formie magazynu podstawowego, jak i dodatkowego.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Aby uzyskać więcej informacji o usłudze Data Lake Storage, zobacz temat Przegląd usługi Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integracja z usługami AzureIntegration with Azure services Klaster Spark w usłudze HDInsight zawiera łącznik usługi Azure Event Hubs.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Aplikacje do przesyłania strumieniowego można tworzyć nie tylko za pomocą oprogramowania Apache Kafka, które jest już dostępne w ramach platformy Spark, ale także przy użyciu usługi Event Hubs.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Obsługa narzędzia ML ServerSupport for ML Server Narzędzie ML Server jest obsługiwane w usłudze HDInsight przy użyciu typu klastra Usługi ML.Support for ML Server in HDInsight is provided as the ML Services cluster type. Możesz skonfigurować klaster usług ML, aby uruchamiać rozproszone obliczenia R z szybkością zapewnianą przez klaster Spark.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Aby uzyskać więcej informacji, zobacz co to jest usługa l Services w usłudze Azure HDInsight.For more information, see What is ML Services in Azure HDInsight.
Integracja ze zintegrowanymi środowiskami projektowymi innych firmIntegration with third-party IDEs Usługa HDInsight zapewnia kilka wtyczek IDE, które są przydatne do tworzenia i przesyłania aplikacji do klastra Spark w usłudze HDInsight.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Aby uzyskać więcej informacji, zobacz temat używanie Azure Toolkit for INTELLIJ pomysłem, Korzystanie z narzędzi platformy Spark & do programu vscodei Używanie 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.
Zapytania jednoczesneConcurrent Queries Klastry Spark w usłudze HDInsight obsługują zapytania jednoczesne.Spark clusters in HDInsight support concurrent queries. Dzięki temu wiele zapytań od jednego użytkownika lub wiele zapytań od różnych użytkowników i aplikacji może współdzielić te same zasoby klastra.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Buforowanie na dyskach SSDCaching on SSDs Istnieje możliwość buforowania danych w pamięci lub na dyskach SSD podłączonych do węzłów klastra.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. Buforowanie w pamięci zapewnia najlepszą wydajność zapytań, ale może być kosztowne.Caching in memory provides the best query performance but could be expensive. Buforowanie na dyskach SSD stanowi doskonałe rozwiązanie umożliwiające poprawę wydajności zapytań bez konieczności tworzenia klastra o rozmiarze obejmującym cały zestaw danych w pamięci.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.
Integracja z narzędziami do analizy biznesowejIntegration with BI Tools Klastry Spark w usłudze HDInsight zawierają łączniki dla narzędzi do analizy biznesowej danych, takich jak Power BI.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Wstępnie załadowane biblioteki AnacondaPre-loaded Anaconda libraries Klastry Spark w usłudze HDInsight są dostarczane z wstępnie zainstalowanymi bibliotekami Anaconda.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Platforma Anaconda dostarcza prawie 200 bibliotek do uczenia maszynowego, analizy danych, wizualizacji itp.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, etc.
SkalowalnośćScalability Usługa HDInsight umożliwia zmianę liczby węzłów klastra.HDInsight allows you to change the number of cluster nodes. Ponadto klastry Spark można porzucić bez utraty danych, ponieważ wszystkie dane są przechowywane w usłudze Azure Storage lub 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.
Umowa SLASLA Oferta klastrów Spark w usłudze HDInsight obejmuje całodobową pomoc techniczną oraz umowę SLA gwarantującą 99,9% czasu działania.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Klastry Apache Spark w usłudze HDInsight obejmują następujące składniki, które są domyślnie dostępne w klastrach.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Klastry Spark w usłudze HDInsight obejmują też sterownik ODBC zapewniający łączność z klastrami Spark w usłudze HDInsight z poziomu narzędzi do analizy biznesowej, takich jak 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 klastra SparkSpark cluster architecture

Architektura platformy Spark w usłudze HDInsight

Składniki platformy Spark najłatwiej zrozumieć, zapoznając się za sposobem działania platformy Spark w klastrach usługi HDInsight.It is easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Aplikacje Spark są uruchamiane jako niezależne zestawy procesów w klastrze, koordynowane przez obiekt SparkContext w programie głównym (nazywanym programem sterującym).Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

Obiekt SparkContext może łączyć się z kilkoma typami menedżerów klastrów, które dokonują alokacji zasobów pomiędzy aplikacje.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Te menedżery klastrów to Apache Mesos, Apache Hadoop YARN lub menedżer klastra Spark.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. W usłudze HDInsight platforma Spark korzysta z menedżera klastra YARN.In HDInsight, Spark runs using the YARN cluster manager. Po nawiązaniu połączenia platforma Spark uzyskuje funkcje wykonawcze w węzłach procesu roboczego w klastrze, które są procesami odpowiedzialnymi za uruchamianie obliczeń i przechowywanie danych aplikacji.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Następnie platforma Spark wysyła kod aplikacji (zdefiniowany przez pliki JAR lub Python przekazywane do obiektu SparkContext) do funkcji wykonawczych.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Na koniec obiekt SparkContext wysyła do funkcji wykonawczych zadania do uruchomienia.Finally, SparkContext sends tasks to the executors to run.

Obiekt SparkContext obsługuje funkcję main użytkownika i wykonuje różne operacje równoległe w węzłach procesu roboczego.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Następnie pobiera wyniki operacji.Then, the SparkContext collects the results of the operations. Węzły procesu roboczego odczytują i zapisują dane, korzystając z rozproszonego systemu plików usługi Hadoop.The worker nodes read and write data from and to the Hadoop distributed file system. Węzły procesu roboczego przesyłają również przekształcone dane do pamięci podręcznej w postaci odpornych rozproszonych zestawów danych (Resilient Distributed Datasets, RDDs).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

Obiekt SparkContext łączy się z usługą nadrzędną platformy Spark i konwertuje aplikację na graf skierowany (DAG) zawierający poszczególne zadania, które są uruchamiane w procesie wykonawczym w węzłach procesu roboczego.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. Poszczególne aplikacje uzyskują własne procesy wykonawcze, które istnieją przez cały czas działania aplikacji i pozwalają uruchamiać zadania w wielu wątkach.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Przypadki zastosowań platformy Spark w usłudze HDInsightSpark in HDInsight use cases

Klastry Spark w usłudze HDInsight umożliwiają realizację następujących głównych scenariuszy:Spark clusters in HDInsight enable the following key scenarios:

  • Interakcyjna analiza danych i analiza biznesowaInteractive data analysis and BI

    Klaster Apache Spark w usłudze HDInsight przechowuje dane w usłudze Azure Storage lub Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Eksperci biznesowi i osoby podejmujące kluczowe decyzje mogą analizować i tworzyć raporty na podstawie danych oraz korzystać z usługi Microsoft Power BI w celu sporządzania interakcyjnych raportów na podstawie analizowanych danych.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. Analitycy mogą rozpocząć pracę od danych o częściowej strukturze lub bez struktury w magazynie klastra, zdefiniować schemat danych za pomocą notesów, a następnie skompilować modele danych przy użyciu usługi 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. Klastry Spark w usłudze HDInsight obsługują również wiele narzędzi do analizy biznesowej innych firm, takich jak Tableau, dzięki czemu platforma Spark ułatwia pracę analityków danych, ekspertów biznesowych i osób podejmujących kluczowe decyzje.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.

    Samouczek: wizualizowanie danych platformy Spark przy użyciu usługi Power BITutorial: Visualize Spark data using Power BI

  • Spark Machine LearningSpark Machine Learning

    Platforma Apache Spark jest dostarczana z biblioteką MLlib do uczenia maszynowego opartą na platformie Spark, której można używać z klastra Spark w usłudze 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. Klaster Spark w usłudze HDInsight obejmuje również platformę Anaconda — dystrybucję oprogramowania Python z szeregiem różnych pakietów do uczenia maszynowego.Spark cluster in HDInsight also includes Anaconda, a Python distribution with a variety of packages for machine learning. W połączeniu z wbudowaną obsługą notesów Jupyter i Zeppelin platforma zapewnia środowisko do tworzenia aplikacji do uczenia maszynowego.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Samouczek: przewidywanie temperatur w budynkach z użyciem danych HVACTutorial: Predict building temperatures using HVAC data
    Samouczek: przewidywanie wyników inspekcji żywnościTutorial: Predict food inspection results

  • Przesyłanie strumieniowe i analiza danych w czasie rzeczywistym na platformie SparkSpark streaming and real-time data analysis

    Klastry Spark w usłudze HDInsight zapewniają szeroką obsługę tworzenia rozwiązań do analizy w czasie rzeczywistym.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Platforma Spark jest już wyposażona w łączniki do przyjmowania danych z wielu źródeł, takich jak Kafka, Flume, Twitter, ZeroMQ lub gniazda TCP, a ponadto platforma Spark w usłudze HDInsight oferuje wysokiej klasy obsługę pobierania danych z usługi 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 to najczęściej używana usługa kolejkowania na platformie Azure.Event Hubs is the most widely used queuing service on Azure. Wbudowana obsługa usługi Event Hubs sprawia, że klastry Spark w usłudze HDInsight stanowią idealną platformę do tworzenia potoku analizy w czasie rzeczywistym.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Od czego zacząć?Where do I start?

Aby dowiedzieć się więcej na temat platformy Apache Spark w usłudze HDInsight, możesz zapoznać się z następującymi artykułami:You can use the following articles to learn more about Apache Spark in HDInsight:

Następne krokiNext Steps

W tym omówieniu uzyskasz podstawową wiedzę na temat platformy Apache Spark w usłudze Azure HDInsight.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Przejdź do następnego artykułu, aby dowiedzieć się, jak utworzyć klaster HDInsight Spark i uruchamiać niektóre zapytania Spark SQL:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: