Apache Spark w usłudze Azure Synapse Analytics

Apache Spark to platforma 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 Synapse Analytics to jedna z implementacji platformy Apache Spark oferowanych przez firmę Microsoft w chmurze. Usługa Azure Synapse ułatwia tworzenie i konfigurowanie bezserwerowej puli zadań platformy Apache Spark na platformie Azure. Pule zadań platformy Spark w usłudze Azure Synapse są zgodne z usługami Azure Storage i Azure Data Lake Generation 2 Storage. Można więc używać pul zadań platformy Spark do przetwarzania danych przechowywanych na platformie Azure.

Diagram przedstawia platformę Spark SQL, Spark MLib i GraphX połączoną z aparatem core spark powyżej warstwy YARN za pośrednictwem usług magazynu.

Co to jest platforma Apache Spark

Platforma Apache Spark udostępnia podstawowe elementy do przetwarzania w klastrze 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 dyskach. Platforma Spark integruje się również z wieloma językami programowania, aby umożliwić manipulowanie rozproszonymi zestawami danych, takimi jak kolekcje lokalne. Nie ma potrzeby, aby wszystkie elementy były obejmowane strukturami operacji mapowania i redukcji. Więcej informacji można dowiedzieć się z wideo platformy Apache Spark dla usługi Synapse.

Diagram przedstawia tradycyjne rozwiązanie MapReduce z aplikacjami opartymi na dyskach i platformą Spark z operacjami opartymi na pamięci podręcznej.

Pule platformy Spark w Azure Synapse oferują w pełni zarządzaną usługę Spark. Poniżej wymieniono korzyści wynikające z tworzenia puli platformy Spark w usłudze Azure Synapse Analytics.

Cecha Opis
Szybkość i wydajność Wystąpienia platformy Spark są uruchamiane w ciągu około 2 minut przez mniej niż 60 węzłów i około 5 minut przez ponad 60 węzłów. Wystąpienie jest domyślnie zamykane, 5 minut po uruchomieniu ostatniego zadania, chyba że jest ono aktywne przez połączenie notesu.
Łatwość tworzenia Nową pulę Spark można utworzyć w ciągu Azure Synapse w ciągu kilku minut przy użyciu Azure Portal, Azure PowerShell lub zestawu SDK platformy .NET usługi Synapse Analytics. Zobacz Wprowadzenie do pul platformy Spark w usłudze Azure Synapse Analytics.
Łatwość użycia Usługa Synapse Analytics zawiera notes niestandardowy pochodzący z nteract. Można ich używać do interakcyjnego przetwarzania danych i wizualizacji.
Interfejsy API REST Platforma Spark w usłudze Azure Synapse Analytics obejmuje usługę Apache Livy, oparty na interfejsie API REST serwer zadań Platformy Spark do zdalnego przesyłania i monitorowania zadań.
Obsługa Azure Data Lake Storage generacji 2 Pule platformy Spark w Azure Synapse mogą używać usługi Azure Data Lake Storage Generation 2 i BLOB Storage. Aby uzyskać więcej informacji o usłudze Data Lake Storage, zobacz temat Przegląd usługi Azure Data Lake Storage.
Integracja ze zintegrowanymi środowiskami projektowymi innych firm Azure Synapse udostępnia wtyczkę IDE dla środowiska IntelliJ IDEA firmy JetBrains, która jest przydatna do tworzenia i przesyłania aplikacji do puli Spark.
Wstępnie załadowane biblioteki Anaconda Pule platformy Spark w Azure Synapse są wstępnie zainstalowane biblioteki Anaconda. Platforma Anaconda udostępnia blisko 200 bibliotek do uczenia maszynowego, analizy danych, wizualizacji i innych technologii.
Skalowalność Platforma Apache Spark w pulach Azure Synapse może mieć włączoną funkcję automatycznego skalowania, dzięki czemu pule można skalować, dodając lub usuwając węzły zgodnie z potrzebami. Ponadto pule platformy Spark można wyłączyć bez utraty danych, ponieważ wszystkie dane są przechowywane w usłudze Azure Storage lub Data Lake Storage.

Pule platformy Spark w Azure Synapse obejmują następujące składniki, które są domyślnie dostępne w pulach:

Architektura puli platformy Spark

Aplikacje platformy Spark działają jako niezależne zestawy procesów w puli, koordynowane przez SparkContext obiekt w programie głównym, nazywane programem sterowników.

Program SparkContext może nawiązać połączenie z menedżerem klastra, który przydziela zasoby między aplikacjami. Menedżer klastra to Apache Hadoop YARN. Po nawiązaniu połączenia platforma Spark uzyskuje funkcje wykonawcze na węzłach w puli, które są procesami, które uruchamiają obliczenia i przechowują dane dla aplikacji. Następnie wysyła kod aplikacji zdefiniowany przez pliki JAR lub Python przekazane do SparkContextfunkcji wykonawczej. SparkContext Na koniec wysyła zadania do funkcji wykonawczych do uruchomienia.

Narzędzie SparkContext uruchamia funkcję główną użytkownika i wykonuje różne operacje równoległe w węzłach. Następnie element SparkContext zbiera wyniki operacji. Węzły odczytują i zapisują dane z systemu plików i do systemu plików. Węzły buforują również przekształcone dane w pamięci jako odporne rozproszone zestawy danych (RDD).

Narzędzie SparkContext łączy się z pulą Spark i jest odpowiedzialne za konwertowanie aplikacji na skierowany graf acykliczny (DAG). Wykres składa się z poszczególnych zadań uruchamianych w ramach procesu wykonawczego w węzłach. Każda aplikacja pobiera własne procesy wykonawcze, które pozostają w trakcie całej aplikacji i uruchamiają zadania w wielu wątkach.

Apache Spark w przypadkach użycia usługi Azure Synapse Analytics

Pule platformy Spark w usłudze Azure Synapse Analytics umożliwiają wykonanie następujących kluczowych scenariuszy:

  • Inżynieria danych/przygotowywanie danych

Platforma Apache Spark oferuje wiele funkcji językowych do obsługi przygotowywania i przetwarzania dużych ilości danych, dzięki czemu może być ona bardziej cenna, a następnie zużywana przez inne usługi w usłudze Azure Synapse Analytics. Jest to włączone za pośrednictwem wielu języków (C#, Scala, PySpark, Spark SQL) i dostarczonych bibliotek do przetwarzania i łączności.

  • Usługa Machine Learning

Platforma Apache Spark zawiera bibliotekę MLlib, bibliotekę uczenia maszynowego utworzoną na platformie Spark, której można użyć z puli Spark w usłudze Azure Synapse Analytics. Pule platformy Spark w usłudze Azure Synapse Analytics obejmują również rozwiązanie Anaconda, dystrybucję języka Python z różnymi pakietami do nauki o danych, w tym uczenia maszynowego. W połączeniu z wbudowaną obsługą notesów zyskujesz środowisko do tworzenia aplikacji do uczenia maszynowego.

  • Dane przesyłane strumieniowo

Usługa Synapse Spark obsługuje przesyłanie strumieniowe ze strukturą platformy Spark, o ile korzystasz z obsługiwanej wersji środowiska uruchomieniowego platformy Azure Synapse Spark. Wszystkie zadania są obsługiwane przez siedem dni. Dotyczy to zarówno zadań wsadowych, jak i przesyłania strumieniowego, a ogólnie rzecz biorąc, klienci automatyzują proces ponownego uruchamiania przy użyciu Azure Functions.

Gdzie mogę rozpocząć

Skorzystaj z następujących artykułów, aby dowiedzieć się więcej na temat platformy Apache Spark w usłudze Azure Synapse Analytics:

Uwaga

Niektóre z oficjalnych dokumentacji platformy Apache Spark opierają się na użyciu konsoli Platformy Spark, która nie jest dostępna na platformie Azure Synapse Spark. Zamiast tego użyj notesu lub środowiska IntelliJ.

Następne kroki

Ten przegląd zawiera podstawową wiedzę na temat platformy Apache Spark w usłudze Azure Synapse Analytics. Przejdź do następnego artykułu, aby dowiedzieć się, jak utworzyć pulę spark w usłudze Azure Synapse Analytics: