Co to jest Apache Spark w programie 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. Platforma Apache Spark w usłudze Azure HDInsight to implementacja platformy Apache Spark w chmurze firmy Microsoft, która jest jedną z kilku ofert platformy Spark na platformie Azure.
Platforma Apache Spark w usłudze Azure HDInsight ułatwia tworzenie i konfigurowanie klastrów Spark, co umożliwia dostosowywanie i używanie pełnego środowiska Spark na platformie Azure.
Pule platformy Spark w usłudze Azure Synapse Analytics używają zarządzanych pul spark, aby umożliwić ładowanie, modelowanie, przetwarzanie i dystrybuowanie danych na potrzeby analiz analitycznych na platformie Azure.
Platforma Apache Spark w usłudze Azure Databricks używa klastrów Spark do udostępniania interaktywnego obszaru roboczego, który umożliwia współpracę między użytkownikami w celu odczytywania danych z wielu źródeł danych i przekształcania ich w przełomowe informacje.
Działania platformy Spark w usłudze Azure Data Factory umożliwiają korzystanie z analizy platformy Spark w potoku danych przy użyciu klastrów Spark na żądanie lub wstępnie istniejących klastrów Spark.
Za pomocą platformy Apache Spark w usłudze Azure HDInsight możesz przechowywać i przetwarzać dane na platformie Azure. Klastry Spark w usłudze HDInsight są zgodne z usługą Azure Blob Storage lub Azure Data Lake Storage Gen2, co umożliwia zastosowanie przetwarzania spark w istniejących magazynach danych.
Aby rozpocząć pracę z platformą Apache Spark w usłudze Azure HDInsight, wykonaj czynności opisane w naszym samouczku, aby utworzyć klastry Spark usługi HDInsight.
Aby uzyskać informacje na temat platformy Apache Spark i sposobu interakcji z platformą Azure, przeczytaj poniższy artykuł.
Aby uzyskać informacje na temat wersji i składników, zobacz Wersje i składniki usługi Apache Hadoop w usłudze Azure HDInsight.
Co to jest platforma Apache Spark?
Platforma Spark udostępnia typom pierwotnym możliwość używania klastrów obliczeniowych korzystających z funkcji przetwarzania w pamięci. Zadanie Spark może ładować i buforować dane w pamięci, a następnie wielokrotnie wykonywać zapytania względem tych danych. 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). Platforma Spark obsługuje również integrację z językiem programowania Scala, co pozwala manipulować rozproszonymi zestawami danych jak kolekcjami lokalnymi. Nie ma potrzeby, aby wszystkie elementy były obejmowane strukturami operacji mapowania i redukcji.
Klastry Spark w usłudze HDInsight oferują w pełni zarządzaną usługę Spark. Poniżej przedstawiono korzyści związane z utworzeniem klastra Spark w usłudze HDInsight.
Funkcja | opis |
---|---|
Łatwość tworzenia | 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. Zobacz Wprowadzenie do klastra Apache Spark w usłudze HDInsight. |
Łatwość użycia | Klaster Spark w usłudze HDInsight obejmuje notesy Jupyter i notesy Apache Zeppelin. Można ich używać do interakcyjnego przetwarzania danych i wizualizacji. Zobacz Używanie notesów Apache Zeppelin z platformą Apache Spark i Ładowanie danych oraz uruchamianie zapytań w klastrze Apache Spark. |
Interfejsy API REST | 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ń. Zobacz Przesyłanie zadań zdalnych do klastra usługi HDInsight Spark przy użyciu interfejsu API REST platformy Apache Spark. |
Obsługa usługi Azure Storage | Klastry Spark w usłudze HDInsight mogą używać usługi Azure Data Lake Storage Gen2 jako magazynu podstawowego lub dodatkowego. Aby uzyskać więcej informacji na temat usługi Data Lake Storage Gen2, zobacz Azure Data Lake Storage Gen2. |
Integracja z usługami Azure | Klaster Spark w usłudze HDInsight zawiera łącznik usługi Azure Event Hubs. Aplikacje przesyłania strumieniowego można tworzyć przy użyciu usługi Event Hubs. Obejmuje to platformę Apache Kafka, która jest już dostępna w ramach platformy Spark. |
Integracja ze zintegrowanymi środowiskami projektowymi innych firm | Usługa HDInsight zapewnia kilka wtyczek IDE, które są przydatne do tworzenia i przesyłania aplikacji do klastra Spark w usłudze HDInsight. Aby uzyskać więcej informacji, zobacz Use Azure Toolkit for IntelliJ IDEA ( Używanie narzędzi Spark i Hive Tools for VS Code) oraz Use Azure Toolkit for Eclipse (Korzystanie z zestawu narzędzi Azure Toolkit for Eclipse). |
Zapytania jednoczesne | Klastry Spark w usłudze HDInsight obsługują zapytania jednoczesne. 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. |
Buforowanie na dyskach SSD | Istnieje możliwość buforowania danych w pamięci lub na dyskach SSD podłączonych do węzłów klastra. Buforowanie w pamięci zapewnia najlepszą wydajność zapytań, ale może być kosztowne. 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. Zobacz Zwiększanie wydajności obciążeń platformy Apache Spark przy użyciu pamięci podręcznej we/wy usługi Azure HDInsight. |
Integracja z narzędziami do analizy biznesowej | Klastry Spark w usłudze HDInsight zawierają łączniki dla narzędzi do analizy biznesowej danych, takich jak Power BI. |
Wstępnie załadowane biblioteki Anaconda | Klastry Spark w usłudze HDInsight są dostarczane z wstępnie zainstalowanymi bibliotekami Anaconda. Platforma Anaconda udostępnia blisko 200 bibliotek do uczenia maszynowego, analizy danych, wizualizacji itd. |
Adaptacji | Usługa HDInsight umożliwia dynamiczne zmienianie liczby węzłów klastra za pomocą funkcji autoskalowania. Zobacz Automatyczne skalowanie klastrów usługi Azure HDInsight. Ponadto klastry Spark można porzucić bez utraty danych, ponieważ wszystkie dane są przechowywane w usłudze Azure Blob Storage lub Azure Data Lake Storage Gen2. |
SLA | Oferta klastrów Spark w usłudze HDInsight obejmuje całodobową pomoc techniczną oraz umowę SLA gwarantującą 99,9% czasu działania. |
Klastry Apache Spark w usłudze HDInsight obejmują następujące składniki, które są domyślnie dostępne w klastrach.
- Spark Core. Obejmuje takie składniki, jak Spark Core, Spark SQL, interfejsy API przesyłania strumieniowego Spark, GraphX oraz MLlib.
- Anaconda
- Apache Livy
- Jupyter Notebook
- Notes Apache Zeppelin
Usługa HDInsight Spark klastruje sterownik ODBC na potrzeby łączności z narzędziami analizy biznesowej, takimi jak Microsoft Power BI.
Architektura klastra Spark
Łatwo jest zrozumieć składniki platformy Spark, zapoznając się ze sposobem działania platformy Spark w klastrach usługi HDInsight.
Aplikacje platformy Spark działają jako niezależne zestawy procesów w klastrze. Koordynowane przez obiekt SparkContext w głównym programie (nazywanym programem sterowników).
Platforma SparkContext może łączyć się z kilkoma typami menedżerów klastrów, które dają zasoby w aplikacjach. Te menedżery klastrów to Apache Mesos, Apache Hadoop YARN lub menedżer klastra Spark. W usłudze HDInsight platforma Spark korzysta z menedżera klastra YARN. 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. Następnie platforma Spark wysyła kod aplikacji (zdefiniowany przez pliki JAR lub Python przekazywane do obiektu SparkContext) do funkcji wykonawczych. Na koniec obiekt SparkContext wysyła do funkcji wykonawczych zadania do uruchomienia.
Obiekt SparkContext obsługuje funkcję main użytkownika i wykonuje różne operacje równoległe w węzłach procesu roboczego. Następnie pobiera wyniki operacji. Węzły procesu roboczego odczytują i zapisują dane, korzystając z rozproszonego systemu plików usługi Hadoop. 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).
Obiekt SparkContext łączy się z wzorcem platformy Spark i jest odpowiedzialny za konwertowanie aplikacji na graf skierowany (DAG) poszczególnych zadań. Zadania wykonywane w ramach procesu wykonawczego w węzłach procesu roboczego. Każda aplikacja pobiera własne procesy wykonawcze, które pozostają w trakcie całej aplikacji i uruchamiają zadania w wielu wątkach.
Przypadki zastosowań platformy Spark w usłudze HDInsight
Klastry Spark w usłudze HDInsight umożliwiają realizację następujących głównych scenariuszy:
Interakcyjna analiza danych i analiza biznesowa
Platforma Apache Spark w usłudze HDInsight przechowuje dane w usługach Azure Blob Storage i Azure Data Lake Storage Gen2. Eksperci biznesowi i kluczowi decydenci mogą analizować i tworzyć raporty dotyczące tych danych. Usługa Microsoft Power BI umożliwia tworzenie interaktywnych raportów na podstawie analizowanych danych. 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. Klastry Spark w usłudze HDInsight obsługują również wiele narzędzi do analizy biznesowej innych firm. Na przykład Tableau, ułatwiając analitykom danych, ekspertom biznesowym i kluczowym osobom podejmującym decyzje.
Spark Machine Learning
Platforma Apache Spark jest dostarczana z biblioteką MLlib. MLlib to biblioteka uczenia maszynowego oparta na platformie Spark, której można użyć z klastra Spark w usłudze HDInsight. Klaster Spark w usłudze HDInsight obejmuje również platformę Anaconda, dystrybucję języka Python z różnymi rodzajami pakietów na potrzeby uczenia maszynowego. Ponadto dzięki wbudowanej obsłudze notesów Jupyter i Zeppelin masz środowisko do tworzenia aplikacji uczenia maszynowego.
- Samouczek: przewidywanie temperatur budynków przy użyciu danych HVAC
- Samouczek: przewidywanie wyników inspekcji żywności
Przesyłanie strumieniowe i analiza danych w czasie rzeczywistym na platformie Spark
Klastry Spark w usłudze HDInsight zapewniają szeroką obsługę tworzenia rozwiązań do analizy w czasie rzeczywistym. Platforma Spark ma już łączniki do pozyskiwania danych z wielu źródeł, takich jak Kafka, Flume, X, ZeroMQ lub TCP sockets. Platforma Spark w usłudze HDInsight dodaje najwyższej klasy obsługę pozyskiwania danych z usługi Azure Event Hubs. Event Hubs to najczęściej używana usługa kolejkowania na platformie Azure. Pełna obsługa usługi Event Hubs sprawia, że klastry Spark w usłudze HDInsight są idealną platformą do tworzenia potoku analizy w czasie rzeczywistym.
- Omówienie przesyłania strumieniowego platformy Apache Spark
- Omówienie przesyłania strumieniowego ze strukturą platformy Apache Spark
Następne kroki
W tym omówieniu masz podstawową wiedzę na temat platformy Apache Spark w usłudze Azure HDInsight. Aby dowiedzieć się więcej na temat platformy Apache Spark w usłudze HDInsight, możesz utworzyć klaster Spark usługi HDInsight i dodatkowo uruchomić przykładowe zapytania Spark:
- Szybki start: tworzenie klastra Apache Spark w usłudze HDInsight i uruchamianie interakcyjnego zapytania przy użyciu programu Jupyter
- Samouczek: ładowanie danych i uruchamianie zapytań w zadaniu platformy Apache Spark przy użyciu programu Jupyter
- Samouczek: wizualizowanie danych platformy Spark przy użyciu usługi Power BI
- Samouczek: przewidywanie temperatur budynków przy użyciu danych HVAC
- Optymalizowanie zadań platformy Spark pod kątem wydajności