Kann Apache Spark ohne Hadoop laufen?


Antworten:


51

Spark kann ohne Hadoop ausgeführt werden, einige seiner Funktionen basieren jedoch auf dem Code von Hadoop (z. B. Umgang mit Parkettdateien). Wir führen Spark auf Mesos und S3 aus, was ein wenig schwierig einzurichten war, aber nach Abschluss sehr gut funktioniert (eine Zusammenfassung der erforderlichen Einstellungen finden Sie hier ).

(Bearbeiten) Hinweis: Seit Version 2.3.0 hat Spark auch native Unterstützung für Kubernetes hinzugefügt


93

Spark ist eine speicherinterne verteilte Computer-Engine.

Hadoop ist ein Framework für Distributed Storage ( HDFS ) und Distributed Processing ( YARN ).

Spark kann mit oder ohne Hadoop-Komponenten (HDFS / YARN) ausgeführt werden.


Verteilter Speicher:

Da Spark kein eigenes verteiltes Speichersystem hat, muss es für verteiltes Rechnen auf eines dieser Speichersysteme angewiesen sein.

S3 - Nicht dringende Stapeljobs. S3 passt zu sehr spezifischen Anwendungsfällen, in denen die Datenlokalität nicht kritisch ist.

Cassandra - Perfekt für die Streaming-Datenanalyse und ein Overkill für Batch-Jobs.

HDFS - Hervorragend geeignet für Batch-Jobs, ohne Kompromisse bei der Datenlokalität einzugehen.


Verteilte Verarbeitung:

Sie können Spark in drei verschiedenen Modi ausführen : Standalone, YARN und Mesos

In der folgenden SE-Frage finden Sie eine ausführliche Erläuterung zum verteilten Speicher und zur verteilten Verarbeitung.

Welchen Clustertyp soll ich für Spark wählen?


23

Standardmäßig verfügt Spark nicht über einen Speichermechanismus.

Zum Speichern von Daten wird ein schnelles und skalierbares Dateisystem benötigt. Sie können S3 oder HDFS oder ein anderes Dateisystem verwenden. Hadoop ist aufgrund der geringen Kosten eine wirtschaftliche Option.

Wenn Sie Tachyon verwenden, wird die Leistung mit Hadoop zusätzlich gesteigert. Es wird Hadoop für die Verarbeitung von Apache-Funken dringend empfohlen . Geben Sie hier die Bildbeschreibung ein


6

Ja, Funken können ohne Hadoop laufen. Alle Kernfunktionen von spark funktionieren weiterhin, aber Sie werden Dinge vermissen, wie die einfache Verteilung all Ihrer Dateien (Code sowie Daten) über hdfs usw. an alle Knoten im Cluster.


6

Gemäß der Spark-Dokumentation kann Spark ohne Hadoop ausgeführt werden.

Sie können es als eigenständigen Modus ohne Ressourcenmanager ausführen.

Wenn Sie jedoch in einem Setup mit mehreren Knoten ausgeführt werden möchten , benötigen Sie einen Ressourcenmanager wie YARN oder Mesos und ein verteiltes Dateisystem wie HDFS, S3 usw.


3

Ja, Sie können den Spark ohne Hadoop installieren. Das wäre etwas knifflig. Sie können auf den Arnon-Link verweisen, um Parkett zur Konfiguration auf S3 als Datenspeicher zu verwenden. http://arnon.me/2015/08/spark-parquet-s3/

Spark verarbeitet nur und verwendet dynamischen Speicher, um die Aufgabe auszuführen. Zum Speichern der Daten benötigen Sie jedoch ein Datenspeichersystem. Hier kommt Hadoop in die Rolle von Spark, es bietet den Speicher für Spark. Ein weiterer Grund für die Verwendung von Hadoop mit Spark ist, dass sie Open Source sind und beide im Vergleich zu anderen Datenspeichersystemen problemlos miteinander integriert werden können. Für andere Speicher wie S3 sollte es schwierig sein, ihn wie oben erwähnt zu konfigurieren.

Hadoop hat aber auch eine Verarbeitungseinheit namens Mapreduce.

Möchten Sie den Unterschied in beiden wissen?

Überprüfen Sie diesen Artikel: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

Ich denke, dieser Artikel wird Ihnen helfen, zu verstehen

  • was zu verwenden,

  • wann zu verwenden und

  • wie benutzt man !!!


1

Ja natürlich. Spark ist ein unabhängiges Berechnungsframework. Hadoop ist ein Distributionsspeichersystem (HDFS) mit MapReduce-Berechnungsframework. Spark kann Daten von HDFS sowie von jeder anderen Datenquelle wie JDBC (Traditional Database), Kafka oder sogar lokaler Festplatte abrufen.



0

Ja, Funken können ohne Hadoop laufen. Sie können Spark ohne Hadoop auf Ihrem lokalen Computer installieren. Spark lib wird jedoch mit Pre-Haddop-Bibliotheken geliefert, dh sie werden während der Installation auf Ihrem lokalen Computer verwendet.


-4

Nein. Es ist eine vollständige Hadoop-Installation erforderlich, um zu funktionieren - https://issues.apache.org/jira/browse/SPARK-10944


1
Dies ist falsch, es funktioniert gut ohne Hadoop in aktuellen Versionen.
Chris Chambers

1
@ChrisChambers Möchten Sie näher darauf eingehen? In einem Kommentar zu diesem Problem heißt es: "Tatsächlich benötigt Spark Hadoop-Klassen, egal was passiert." Auf der Downloadseite gibt es nur Optionen für eine für eine bestimmte Hadoop-Version vorgefertigte oder eine mit vom Benutzer bereitgestellte Hadoop-Version. In den Dokumenten heißt es: "Spark verwendet Hadoop-Clientbibliotheken für HDFS und YARN." und diese Abhängigkeit scheint nicht optional zu sein.
NikoNyrh

1
@NikoNyrh richtig. Ich habe gerade versucht, das Download-Artefakt "Vom Benutzer bereitgestelltes Hadoop" auszuführen und sofort eine Stapelverfolgung zu erhalten. Ich möchte auch, dass der Klassenpfad von Spark von den Kernklassen von Hadoop entkoppelt wird. Aber für Prototyping- und Testzwecke nehme ich insgesamt kein anderes Problem als die Größe des Downloads (120 MB). Naja. Prost!
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
Stapelspur
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.