Azure HDInsight 'ta Apache Spark nedir?What is Apache Spark in Azure HDInsight

Apache Spark, büyük veri analizi uygulamalarının performansını artırmak üzere bellek içi işlemeyi destekleyen paralel bir işleme çerçevesidir.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Azure HDInsight 'ta Apache Spark, bulutta Apache Spark Microsoft uygulamasıdır.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. HDInsight, Azure 'da Spark kümesi oluşturmayı ve yapılandırmayı kolaylaştırır.HDInsight makes it easier to create and configure a Spark cluster in Azure. HDInsight 'ta Spark kümeleri, Azure depolama ve Azure Data Lake Storage uyumludur.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Böylece, Azure 'da depolanan verilerinizi işlemek için HDInsight Spark kümelerini kullanabilirsiniz.So you can use HDInsight Spark clusters to process your data stored in Azure. Bileşenler ve sürüm bilgileri için bkz. Azure HDInsight 'ta bileşenler ve sürümler Apache Hadoop.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: Birleşik bir çerçeve

Apache Spark nedir?What is Apache Spark?

Spark, bellek içi küme bilgi işlem için temel öğeler sağlar.Spark provides primitives for in-memory cluster computing. Bir Spark işi, verileri belleğe yükleyebilir ve önbelleğe alabilir ve tekrar tekrar sorgulayabilir.A Spark job can load and cache data into memory and query it repeatedly. Bellek içi bilgi işlem, Hadoop gibi disk tabanlı uygulamalardan daha hızlıdır, bu da Hadoop Dağıtılmış dosya sistemi (II) aracılığıyla verileri paylaşır.In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). Spark ayrıca, yerel Koleksiyonlar gibi dağıtılmış veri kümelerini değiştirmenize olanak sağlamak için Scala programlama diliyle tümleştirilir.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Her şeyi eşleme olarak yapılandırmak ve işlemleri azaltmak gerekmez.There's no need to structure everything as map and reduce operations.

Geleneksel MapReduce ile Spark

HDInsight 'ta Spark kümeleri, tam olarak yönetilen bir Spark hizmeti sunar.Spark clusters in HDInsight offer a fully managed Spark service. HDInsight 'ta Spark kümesi oluşturmanın avantajları burada listelenmiştir.Benefits of creating a Spark cluster in HDInsight are listed here.

ÖzellikFeature AçıklamaDescription
Kolaylığı oluşturmaEase creation Azure portal, Azure PowerShell veya HDInsight .NET SDK kullanarak dakikalar içinde HDInsight 'ta yeni bir Spark kümesi oluşturabilirsiniz.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Bkz. HDInsight 'ta Apache Spark kümesiyle çalışmaya başlama.See Get started with Apache Spark cluster in HDInsight.
Kullanım kolaylığıEase of use HDInsight 'ta Spark kümesi, Jupyter ve Apache Zeppelin not defterlerini içerir.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Etkileşimli veri işleme ve görselleştirme için bu not defterlerini kullanabilirsiniz.You can use these notebooks for interactive data processing and visualization.
REST API 'LeriREST APIs HDInsight 'ta Spark kümeleri, işleri uzaktan göndermek ve izlemek için REST API tabanlı bir Spark iş sunucusu olan Apache Livy' i içerir.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Bkz. bir HDInsight Spark kümesine uzak işleri göndermek için Apache Spark REST API kullanma.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Azure Data Lake Storage için destekSupport for Azure Data Lake Storage HDInsight 'ta Spark kümeleri, birincil depolama alanı veya ek depolama alanı olarak Azure Data Lake Storage kullanabilir.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Data Lake Storage hakkında daha fazla bilgi için bkz. Azure Data Lake Storage genel bakış.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Azure hizmetleriyle tümleştirmeIntegration with Azure services HDInsight 'ta Spark kümesi, Azure Event Hubs bağlayıcısıyla birlikte gelir.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Spark 'un bir parçası olarak zaten bulunan Apache Kafkaek olarak Event Hubs kullanarak akış uygulamaları oluşturabilirsiniz.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
ML Server için destekSupport for ML Server HDInsight 'ta ML Server için destek, ml Hizmetleri küme türü olarak sunulmaktadır.Support for ML Server in HDInsight is provided as the ML Services cluster type. Bir ML hizmetleri kümesini, dağıtılmış R hesaplamaları 'nı bir Spark kümesiyle ilişkilendirilen hızlarla birlikte çalıştıracak şekilde ayarlayabilirsiniz.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Daha fazla bilgi için bkz. Azure HDInsight 'TA ml Hizmetleri nedir.For more information, see What is ML Services in Azure HDInsight.
Üçüncü taraf IDEs ile tümleştirmeIntegration with third-party IDEs HDInsight, bir HDInsight Spark kümesine uygulama oluşturmak ve göndermek için yararlı olan birkaç IDE eklenti sağlar.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Daha fazla bilgi için bkz. Azure TOOLKIT for INTELLIJ fikir kullanımı, vscode Için Spark & Hive araçları kullanmave Azure Toolkit for Eclipse kullanma.For more information, see Use Azure Toolkit for IntelliJ IDEA, Use Spark & Hive Tools for VSCode, and Use Azure Toolkit for Eclipse.
Eşzamanlı sorgularConcurrent Queries HDInsight 'ta Spark kümeleri eşzamanlı sorguları destekler.Spark clusters in HDInsight support concurrent queries. Bu özellik, bir kullanıcıdan veya çeşitli Kullanıcı ve uygulamalardan birden çok sorgunun aynı küme kaynaklarını paylaşmasını sağlar.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
SSD 'lerde önbelleğe almaCaching on SSDs Verileri bellekte veya küme düğümlerine bağlı SSD 'lerde önbelleğe alma seçeneğini belirleyebilirsiniz.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. Bellekte önbelleğe alma, en iyi sorgu performansını sağlar ancak pahalı olabilir.Caching in memory provides the best query performance but could be expensive. SSD 'lerde önbelleğe alma, veri kümesinin tamamına bellek içinde sığması için gereken bir boyut kümesi oluşturmaya gerek kalmadan sorgu performansını iyileştirmeye yönelik harika bir seçenek sunar.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.
Bı araçlarıyla tümleştirmeIntegration with BI Tools HDInsight 'ta Spark kümeleri, veri analizi için Power BI gibi BI araçları için bağlayıcılar sağlar.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Önceden yüklenmiş Anaconda kitaplıklarıPre-loaded Anaconda libraries HDInsight 'ta Spark kümeleri, önceden yüklenmiş Anaconda kitaplıkları ile gelir.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda makine öğrenimi, veri analizi, görselleştirme vb. için 200 'e yakın bir kitaplık sağlar.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, and so on.
ÖlçeklenebilirlikScalability HDInsight, küme düğümlerinin sayısını değiştirmenize izin verir.HDInsight allows you to change the number of cluster nodes. Ayrıca, tüm veriler Azure depolama 'da veya Data Lake Storage depolandığından, Spark kümeleri veri kaybı olmadan bırakılabilir.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 HDInsight 'ta Spark kümeleri 24/7 desteği ve% 99,9 ' nin güncel bir SLA 'Sı ile gelir.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

HDInsight 'ta Apache Spark kümeleri varsayılan olarak kümelerde kullanılabilen aşağıdaki bileşenleri içerir.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

HDInsight 'ta Spark kümeleri, Microsoft Power BI gibi bı araçlarından HDInsight 'ta Spark kümelerine bağlantı için bir ODBC sürücüsü de sağlar.Spark clusters in HDInsight also provide an ODBC driver for connectivity to Spark clusters in HDInsight from BI tools such as Microsoft Power BI.

Spark kümesi mimarisiSpark cluster architecture

HDInsight Spark mimarisi

Spark 'ın HDInsight kümelerinde nasıl çalıştığını anlayarak Spark bileşenlerini anlamak kolaydır.It's easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Spark uygulamaları, ana programınızdaki (sürücü programı olarak adlandırılır) mini bağlam nesnesi tarafından koordine edilen bir kümede bağımsız işlem kümesi olarak çalışır.Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

Mini bağlam, uygulamalar arasında kaynak ayıran çeşitli Küme Yöneticisi türlerine bağlanabilir.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Bu küme yöneticileri Apache Mesos, Apache Hadoop Yarnveya Spark kümesi Yöneticisi 'ni içerir.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. HDInsight 'ta Spark, YARN kümesi Yöneticisi 'ni kullanarak çalışır.In HDInsight, Spark runs using the YARN cluster manager. Bağlandıktan sonra Spark,, hesaplamalar çalıştıran ve uygulamanız için veri depolayan süreçler olan kümedeki çalışanlar düğümlerinde yürütmeleri elde ediyor.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Daha sonra, uygulama kodunuzu (Bu, Mini Içerik 'e geçirilen JAR veya Python dosyaları tarafından tanımlanan) yürüticilere gönderir.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Son olarak, Mini bağlam, çalıştırılacak görevleri yürütmek üzere gönderir.Finally, SparkContext sends tasks to the executors to run.

Mini bağlam, kullanıcının ana işlevini çalıştırır ve çalışan düğümlerinde çeşitli paralel işlemleri yürütür.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Daha sonra, Mini bağlam işlemlerin sonuçlarını toplar.Then, the SparkContext collects the results of the operations. Çalışan düğümleri Hadoop Dağıtılmış dosya sistemine ve öğesinden verileri okur ve yazar.The worker nodes read and write data from and to the Hadoop distributed file system. Çalışan düğümleri aynı zamanda, dönüştürülmüş verileri dayanıklı Dağıtılmış veri kümeleri (RDDs) olarak bellek içinde önbelleğe alma.The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

Mini bağlam, Spark yöneticisine bağlanır ve bir uygulamayı çalışan düğümlerinde bir yürütücü işlemi içinde yürütülen ayrı görevlerin yönlendirilmiş grafiğine (DAG) dönüştürmekten sorumludur.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. Her uygulama, uygulamanın tamamına ve birden çok iş parçacığında görev çalıştırmaya devam eden kendi yürütücü süreçlerini alır.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

HDInsight 'ta Spark kullanım örnekleriSpark in HDInsight use cases

HDInsight 'ta Spark kümeleri aşağıdaki temel senaryoları etkinleştirir:Spark clusters in HDInsight enable the following key scenarios:

  • Etkileşimli veri analizi ve bıInteractive data analysis and BI

    HDInsight 'ta Apache Spark, verileri Azure depolama veya Azure Data Lake Storage depolar.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. İş uzmanları ve temel karar mekanizmaları, bu verilere ilişkin raporları çözümleyebilir ve raporlar oluşturabilir ve çözümlenen verilerden etkileşimli raporlar oluşturmak için Microsoft Power BI kullanabilir.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. Analistleri küme depolamada yapılandırılmamış/yarı yapılandırılmış verilerden başlayabilir, not defterlerini kullanarak veriler için bir şema tanımlayabilir ve ardından Microsoft Power BI kullanarak veri modelleri oluşturabilir.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. HDInsight 'ta Spark kümeleri, Tableau gibi çeşitli üçüncü taraf bı araçlarını da destekler. Bu, veri analistleri, iş uzmanları ve temel karar mekanizmalarının daha kolay olmasını sağlar.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.

    Öğretici: Power BI kullanarak Spark verilerini görselleştirmeTutorial: Visualize Spark data using Power BI

  • Spark Machine LearningSpark Machine Learning

    Apache Spark, HDInsight 'ta bir Spark kümesinden kullanabileceğiniz Spark üzerinde oluşturulmuş bir Machine Learning kitaplığı olan Mllibile birlikte gelir.Apache Spark comes with MLlib, a machine learning library built on top of Spark that you can use from a Spark cluster in HDInsight. HDInsight 'ta Spark kümesi, Machine Learning için farklı türlerde paketlere sahip bir Python dağıtımı olan Anaconda 'yı da içerir.Spark cluster in HDInsight also includes Anaconda, a Python distribution with different kinds of packages for machine learning. Bunun için, Jupyter ve Zeppelin Not defterleri için yerleşik bir destek ve makine öğrenimi uygulamaları oluşturmak için bir ortamınız vardır.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Öğretici: HVAC verilerini kullanarak oluşturma sıcaklıkları tahmin etmeTutorial: Predict building temperatures using HVAC data
    Öğretici: yiyecek İnceleme sonuçlarını tahmin etmeTutorial: Predict food inspection results

  • Spark akış ve gerçek zamanlı veri analiziSpark streaming and real-time data analysis

    HDInsight 'ta Spark kümeleri, gerçek zamanlı analiz çözümleri oluşturmak için zengin destek sunar.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Spark, Kafka, flome, Twitter, ZeroMQ veya TCP yuvaları gibi birçok kaynaktan veri almak için bağlayıcılar içerdiğinden, HDInsight 'ta Spark, Azure Event Hubs veri alımı için birinci sınıf destek ekler.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, Azure 'da en yaygın olarak kullanılan sıraya alma hizmetidir.Event Hubs is the most widely used queuing service on Azure. Event Hubs için hazır olmayan desteğe sahip olma, HDInsight 'ta Spark kümelerinin gerçek zamanlı analiz işlem hattı oluşturmak için ideal bir platform olmasını sağlar.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Nereden başlayabilirim?Where do I start?

HDInsight 'ta Apache Spark hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri kullanabilirsiniz:You can use the following articles to learn more about Apache Spark in HDInsight:

Sonraki AdımlarNext Steps

Bu genel bakışta, Azure HDInsight 'ta Apache Spark temel bilgi edinirsiniz.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Bir HDInsight Spark kümesi oluşturmayı ve bazı Spark SQL sorgularını çalıştırmayı öğrenmek için sonraki makaleye ilerleyin:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: