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


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


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?


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


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.


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.


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ć !!!


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.



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.


-5

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.