Czy iskra Apache może działać bez hadoopa?

91

Czy są jakieś zależności między platformą Spark i Hadoop ?

Jeśli nie, czy są jakieś funkcje, za którymi będę tęsknić, uruchamiając Spark bez Hadoop ?

turystyczny
źródło

Odpowiedzi:

53

Spark może działać bez Hadoop, ale część jego funkcjonalności opiera się na kodzie Hadoop (np. Obsługa plików Parquet). Uruchamiamy Spark na Mesos i S3, który był trochę trudny do skonfigurowania, ale działa naprawdę dobrze po zakończeniu (możesz przeczytać podsumowanie tego, co było potrzebne do prawidłowego ustawienia tutaj ).

(Edytuj) Uwaga: od wersji 2.3.0 Spark dodał również natywną obsługę Kubernetes

Arnon Rotem-Gal-Oz
źródło
96

Spark to rozproszony aparat obliczeniowy w pamięci.

Hadoop to platforma dla rozproszonego magazynu ( HDFS ) i rozproszonego przetwarzania ( YARN ).

Spark może działać z komponentami Hadoop lub bez nich (HDFS / YARN)


Rozproszone przechowywanie:

Ponieważ Spark nie ma własnego rozproszonego systemu pamięci masowej, musi polegać na jednym z tych systemów do przetwarzania rozproszonego.

S3 - Niepilne zadania wsadowe. S3 pasuje do bardzo specyficznych przypadków użycia, gdy lokalność danych nie jest krytyczna.

Cassandra - Idealny do strumieniowej analizy danych i przesady w przypadku zadań wsadowych.

HDFS - doskonale nadaje się do zadań wsadowych bez uszczerbku dla lokalizacji danych.


Przetwarzanie rozproszone:

Możesz uruchomić Spark'a w trzech różnych trybach: Standalone, YARN i Mesos

Spójrz na poniższe pytanie SE, aby uzyskać szczegółowe wyjaśnienie zarówno na temat rozproszonej pamięci masowej, jak i rozproszonego przetwarzania.

Jaki typ klastra wybrać dla platformy Spark?

Ravindra babu
źródło
23

Domyślnie Spark nie ma mechanizmu magazynowania.

Do przechowywania danych potrzebny jest szybki i skalowalny system plików. Możesz użyć S3 lub HDFS lub dowolnego innego systemu plików. Hadoop jest opcją ekonomiczną ze względu na niski koszt.

Dodatkowo, jeśli używasz Tachyon, zwiększy to wydajność dzięki Hadoop. Jest wysoce zalecane Hadoop do przetwarzania iskier Apache . wprowadź opis obrazu tutaj

Venu A Positive
źródło
6

Tak, iskra może działać bez hadoopa. Wszystkie podstawowe funkcje Spark będą nadal działać, ale przegapisz takie rzeczy, jak łatwe dystrybuowanie wszystkich plików (kodu i danych) do wszystkich węzłów w klastrze za pośrednictwem hdfs itp.

quantum_random
źródło
6

Zgodnie z dokumentacją Spark, Spark może działać bez Hadoop.

Możesz go uruchomić jako tryb autonomiczny bez menedżera zasobów.

Ale jeśli chcesz działać w konfiguracji z wieloma węzłami , potrzebujesz menedżera zasobów, takiego jak YARN lub Mesos, i rozproszonego systemu plików, takiego jak HDFS, S3 itp.

user2359003
źródło
3

Tak, możesz zainstalować Spark'a bez Hadoop. To byłoby trochę trudne. Możesz polecić arnon link do skonfigurowania na S3 parkietu jako przechowywania danych. http://arnon.me/2015/08/spark-parquet-s3/

Spark tylko przetwarza i używa pamięci dynamicznej do wykonania zadania, ale do przechowywania danych potrzebujesz jakiegoś systemu przechowywania danych. Tutaj hadoop występuje w roli ze Sparkiem, zapewnia miejsce do przechowywania dla Sparka. Kolejnym powodem używania Hadoop z Spark jest to, że są one open source i oba mogą się łatwo zintegrować ze sobą, w porównaniu z innymi systemami przechowywania danych. W przypadku innych pamięci, takich jak S3, konfiguracja powinna być trudna, jak wspomniano w powyższym linku.

Ale Hadoop ma również swoją jednostkę przetwarzania o nazwie Mapreduce.

Chcesz poznać różnicę w obu?

Sprawdź ten artykuł: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

Myślę, że ten artykuł pomoże ci to zrozumieć

  • czego użyć,

  • kiedy używać i

  • jak używać !!!

Abhijit Kumar
źródło
1

Tak oczywiście. Spark to niezależna platforma obliczeniowa. Hadoop to dystrybucyjny system magazynowania (HDFS) z platformą obliczeniową MapReduce. Spark może pobierać dane z HDFS, a także z dowolnego innego źródła danych, takiego jak tradycyjna baza danych (JDBC), kafka, a nawet dysk lokalny.

ssnijik
źródło
1

Tak, Spark może działać z instalacją Hadoop lub bez niej, aby uzyskać więcej informacji, które można odwiedzić - https://spark.apache.org/docs/latest/

Hadoop_Expert
źródło
0

Tak, Spark może działać bez Hadoop. Możesz zainstalować Spark na swojej lokalnej maszynie bez Hadoop. Ale Spark lib zawiera biblioteki pre Haddop, tj. Są używane podczas instalacji na komputerze lokalnym.

amarnath pryszcz
źródło
-5

Nie. Wymaga pełnej instalacji Hadoop, aby zacząć działać - https://issues.apache.org/jira/browse/SPARK-10944

user1391095
źródło
1
To jest niepoprawne, działa dobrze bez Hadoop w aktualnych wersjach.
Chris Chambers
1
@ChrisChambers Czy chciałbyś to rozwinąć? W komentarzu do tego problemu jest napisane „W rzeczywistości Spark wymaga klas Hadoop bez względu na wszystko”, a na stronie pobierania dostępne są tylko opcje wstępnie zbudowanej dla określonej wersji Hadoop lub wersji z Hadoop dostarczonej przez użytkownika. I docs powiedzieć „Spark wykorzystuje biblioteki klienckie Hadoop dla HDFS i przędzy.” i ta zależność nie wydaje się być opcjonalna.
NikoNyrh
1
@NikoNyrh poprawnie. Po prostu spróbowałem wykonać artefakt pobierania „Hadoop dostarczony przez użytkownika” i natychmiast uzyskałem ślad stosu. Chciałbym również, aby ścieżka klas Sparka została oddzielona od podstawowych klas Hadoop. Ale dla celów prototypowania i testowania nie biorę w sumie żadnego problemu poza rozmiarem pobierania (120 MB). No cóż. Twoje zdrowie!
Jesús Zazueta
$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more
Przedmiotowy