Apache Spark

Apache Spark

Informacja
Opracowany przez Fundacja oprogramowania Apache
Pierwsza wersja 30 maja 2014
Ostatnia wersja 3.1.0 (5 stycznia 2021 r)
Kaucja github.com/apache/spark
Napisane w Scala , Java , Python , R , SQL ( d ) i Java Database Connectivity
System operacyjny Microsoft Windows , Linux i macOS
Środowisko Maszyna wirtualna Java
Czytaj formaty JavaScript Object Notation , wartości rozdzielane przecinkami , plik tekstowy , Apache Parquet i Optimized Row Columnar (ORC) ( d )
Formaty pisemne Wartości oddzielone przecinkami , JavaScript Object Notation , Apache Parquet , plik tekstowy i zoptymalizowana kolumna wierszy (ORC) ( d )
Rodzaj Framework
Struktura oprogramowania do uczenia maszynowego ( d )
Przetwarzanie w chmurze
Licencja Licencja Apache w wersji 2.0 i licencja BSD
Stronie internetowej spark.apache.org i spark.apache.org

Spark (lub Apache Spark ) to framework open source do przetwarzania rozproszonego . Jest to zestaw narzędzi i komponentów oprogramowania zorganizowanych zgodnie ze zdefiniowaną architekturą. Opracowany na Uniwersytecie Kalifornijskim w Berkeley przez AMPLab, Spark jest dziś projektem Fundacji Apache . Ten produkt jest strukturą aplikacji do przetwarzania dużych zbiorów danych w celu wykonywania złożonych analiz na dużą skalę.

Historyczny

W 2009 roku Spark został zaprojektowany przez Matei Zaharia  (w) podczas jego doktoratu na Uniwersytecie Kalifornijskim w Berkeley. Pierwotnie jego rozwój był rozwiązaniem przyspieszającym przetwarzanie systemów Hadoop . Twórcy szczególnie podkreślają szybkość produktu pod względem wykonywania zadań w porównaniu z MapReduce .

W 2013 roku, przekazany fundacji Apache, Spark stał się jednym z najbardziej aktywnych projektów tej ostatniej.

W 2014 roku Spark wygrał konkurs Daytona GraySort, którego celem jest jak najszybsze sortowanie 100  TB danych. Ten rekord był wcześniej w posiadaniu Hadoop. Aby to zrobić, Spark użył 206 maszyn z końcowym czasem pracy 23 minuty, podczas gdy Hadoop wykorzystał 2100 maszyn, a końcowy czas pracy wynosił 72 minuty . Potęgę Sparka zademonstrowano, będąc 3 razy szybszym i używając około 10 razy mniej maszyn.

Współautorzy, którzy uczestniczą w jego rozwoju, są liczni i pochodzą z około 200 różnych firm, takich jak Intel , Facebook , IBM i Netflix . Od 2015 roku było ponad 1000 autorów.

posługiwać się

Spark wykonuje odczyt danych na poziomie klastra (klaster serwerów w sieci), wykonuje wszelkie niezbędne operacje analityczne, a następnie zapisuje wyniki na tym samym poziomie. Pomimo tego, że zadania są napisane w językach Scala , Java i Python , najlepiej wykorzystuje swoje możliwości w języku ojczystym Scala.

Tak więc tam, gdzie MapReduce Hadoop działa etapami, Spark może pracować na wszystkich danych w tym samym czasie. Dzięki temu jest do dziesięciu razy szybszy w przypadku przetwarzania wsadowego i do stukrotnie w przypadku wykonywania analiz w pamięci.

Spark wykonuje wszystkie operacje analizy danych w pamięci i w czasie rzeczywistym. Opiera się na dyskach tylko wtedy, gdy jego pamięć nie jest już wystarczająca. I odwrotnie, w przypadku Hadoop dane są zapisywane na dysku po każdej operacji. Ta praca pamięci skraca czasy latencji między zabiegami, co wyjaśnia taką szybkość.

Jednak Spark nie ma własnego systemu zarządzania plikami . Konieczne jest zapewnienie mu jednego, np. Hadoop Distributed File System , Informix , Cassandra , OpenStack Swift czy Amazon S3 ) . Zaleca się używanie go z Hadoop, który obecnie pozostaje najlepszym ogólnym rozwiązaniem pamięci masowej dzięki bardziej zaawansowanym narzędziom administracyjnym, zabezpieczającym i monitorującym .

W przypadku awarii lub awarii systemu: Obiekty danych są przechowywane w tak zwanych odpornych rozproszonych zbiorach danych ( RDD ) rozproszonych w klastrze danych, co umożliwia pełne odzyskanie danych.

RDD to zbiór danych obliczonych ze źródła i przechowywanych w pamięci RAM (o ile pozwala na to pojemność). Jedną z zalet RDD jest możliwość przechowywania wystarczającej ilości informacji o tym, jak została utworzona partycja RDD. W przypadku utraty partycji może więc ją przeliczyć.

Przybory

Spark SQL

Spark SQL umożliwia uruchamianie zapytań w językach SQL w celu ładowania i przekształcania danych. Język SQL pochodzi z relacyjnych baz danych , ale w Spark może służyć do przetwarzania dowolnych danych, niezależnie od ich oryginalnego formatu.

Przesyłanie strumieniowe Spark

Spark Streaming oferuje strumieniowe przetwarzanie danych użytkownika. Wykorzystuje dane w czasie rzeczywistym DStream ( strumień dyskretny ) , tj. Ciągłą serię RDD.

Na przykład Twitter lub Amazon Kinesis.

Spark Graph X

Spark Graph X służy do przetwarzania informacji z wykresów . Graph X rozszerza RDD Sparka, wprowadzając elastyczny wykres rozproszonego zestawu danych , ukierunkowany multi-graf z właściwościami dołączonymi do węzłów i krawędzi.

Spark MLlib

Jest to biblioteka do uczenia maszynowego , pojawiająca się w wersji 1.2 platformy Spark, która zawiera wszystkie klasyczne algorytmy uczenia się i narzędzia, takie jak klasyfikacja , regresja , grupowanie , filtrowanie zespołowe i redukcja wymiarów, a także podstawowe prymitywy optymalizacji. Często mówimy o eksploracji danych poprzez uczenie się statystyczne.

Charakterystyka

Obecnie pojęcie dużych zbiorów danych jest bardzo rozpowszechnione. Spark jest skierowany do odbiorców poszukujących wydajnego przetwarzania danych, które są zbyt duże, aby można je było przechowywać na jednym komputerze. Każdy z zainteresowanych graczy szuka coraz większej responsywności na rynku, stąd zainteresowanie analizą w czasie rzeczywistym.

Sposób działania MapReduce może być wystarczający, jeśli potrzeby operacyjne i raportowe są w większości statyczne i można poczekać na zakończenie przetwarzania wsadowego. Jednak Spark przynosi wartość dodaną, wprowadzając Spark Streaming. Narzędzie to umożliwia np. Przetwarzanie danych przesyłanych przez czujniki w fabryce lub wymagających kolejnych operacji. Dzieje się tak w przypadku większości algorytmów uczenia maszynowego , które muszą wykonywać wiele operacji. Na przykład Spark nadaje się do kampanii marketingowych w czasie rzeczywistym, rekomendacji produktów online, a nawet do cyberbezpieczeństwa .

Interfejsy z innymi językami programowania

Spark zapewnia interfejsy programowania domyślnie , które pozwalają na stosowanie go z Scala , Java , Python oraz języków R .

Ponadto niezależny projekt EclairJS umożliwia pisanie programów Spark w JavaScript .

Uwagi i odniesienia

  1. Wersja 3.1.0  " ,5 stycznia 2021 r(dostęp 6 lutego 2021 )
  2. (w) „  Databricks Co to jest Apache Spark?  » , Na databricks.com
  3. (w) „  Spark AMPLab  ” na https://amplab.cs.berkeley.edu
  4. (w) „  Matei Zaharia  ” na https://cs.stanford.edu
  5. „  Spark przewyższa MapReduce w analizie danych  ” , na lemondeinformatique.fr ,8 grudnia 2014(dostęp 24 listopada 2016 )
  6. (en) „  Projekty Fundacji Apache  ” na https://projects.apache.org
  7. (en-US) "  Apache Spark oficjalnie ustanawia nowy rekord w sortowaniu na dużą skalę  " , Databricks ,5 listopada 2014( czytaj online , sprawdzono 9 listopada 2016 r. )
  8. „  Committers - Spark - Apache Software Foundation  ” , na cwiki.apache.org (dostęp 14 listopada 2016 )
  9. „  The Apache Spark Open Source Project on Open Hub  ”, na www.openhub.net (dostęp 9 listopada 2016 )
  10. „  Spark, big data toolkit - STAT4DECISION  ” , na www.stat4decision.com (dostęp 24 listopada 2016 )
  11. (w) „  Pięć rzeczy, które musisz wiedzieć o Hadoop v. Apache Spark  ” na infoworld.com ,11 grudnia 2015(dostęp 9 listopada 2016 )
  12. "  Co to jest Apache Spark?" - Amazon Web Services (AWS)  ” , w Amazon Web Services, Inc. (dostęp 9 listopada 2016 r. )
  13. https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf
  14. „  Apache Spark ™ - Lightning-Fast Cluster Computing  ” , na stronie spark.apache.org (dostęp 14 listopada 2016 r. )
  15. „  Aby wygrać, firmy muszą wyostrzyć swój refleks dzięki Apache Spark!”  ", Lesechos.fr ,26 stycznia 2016( czytaj online , sprawdzono 9 listopada 2016 r. )
  16. https://github.com/EclairJS/eclairjs

Zobacz też

Powiązane artykuły

Linki zewnętrzne