Gibt es Abhängigkeiten zwischen Spark und Hadoop ?
Wenn nicht, gibt es Funktionen, die ich vermissen werde, wenn ich Spark ohne Hadoop ausführe ?
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
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.
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.
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.
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 .
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.
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.
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 !!!
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.
Ja, Spark kann mit oder ohne Hadoop-Installation ausgeführt werden. Weitere Informationen finden Sie unter https://spark.apache.org/docs/latest/.
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.
Nein. Es ist eine vollständige Hadoop-Installation erforderlich, um zu funktionieren - https://issues.apache.org/jira/browse/SPARK-10944
$ ./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