Apache Spark può funzionare senza hadoop?


Risposte:


53

Spark può essere eseguito senza Hadoop ma alcune delle sue funzionalità si basano sul codice di Hadoop (ad esempio, la gestione dei file Parquet). Stiamo eseguendo Spark su Mesos e S3 che è stato un po 'complicato da configurare ma funziona davvero bene una volta fatto (puoi leggere un riepilogo di ciò che era necessario per impostarlo correttamente qui ).

(Modifica) Nota: dalla versione 2.3.0 Spark ha anche aggiunto il supporto nativo per Kubernetes


96

Spark è un motore di elaborazione distribuito in memoria.

Hadoop è un framework per l'archiviazione distribuita ( HDFS ) e l'elaborazione distribuita ( YARN ).

Spark può essere eseguito con o senza componenti Hadoop (HDFS / YARN)


Archiviazione distribuita:

Poiché Spark non dispone di un proprio sistema di archiviazione distribuito, deve dipendere da uno di questi sistemi di archiviazione per l'elaborazione distribuita.

S3 - Lavori batch non urgenti. S3 si adatta a casi d'uso molto specifici in cui la località dei dati non è critica.

Cassandra : perfetta per l'analisi dei dati in streaming e un eccesso di lavoro in batch

HDFS : si adatta perfettamente ai lavori batch senza compromettere la località dei dati.


Elaborazione distribuita:

Puoi eseguire Spark in tre diverse modalità: Standalone, YARN e Mesos

Dai un'occhiata alla seguente domanda SE per una spiegazione dettagliata sia dello storage distribuito che dell'elaborazione distribuita.

Quale tipo di cluster devo scegliere per Spark?


23

Per impostazione predefinita, Spark non dispone di un meccanismo di archiviazione.

Per archiviare i dati, è necessario un file system veloce e scalabile. Puoi utilizzare S3 o HDFS o qualsiasi altro file system. Hadoop è un'opzione economica grazie al basso costo.

Inoltre, se usi Tachyon, migliorerai le prestazioni con Hadoop. È altamente raccomandato Hadoop per l' elaborazione delle scintille di Apache . inserisci qui la descrizione dell'immagine


6

Sì, la scintilla può funzionare senza hadoop. Tutte le funzionalità principali di Spark continueranno a funzionare, ma ti mancheranno cose come distribuire facilmente tutti i tuoi file (codice e dati) a tutti i nodi del cluster tramite hdfs, ecc.


6

Come da documentazione di Spark, Spark può essere eseguito senza Hadoop.

Puoi eseguirlo in modalità Standalone senza alcun gestore di risorse.

Ma se vuoi eseguire in configurazione multi-nodo , hai bisogno di un gestore di risorse come YARN o Mesos e un file system distribuito come HDFS, S3 ecc.


3

Sì, puoi installare Spark senza Hadoop. Sarebbe un po 'complicato Puoi fare riferimento ad arnon link per usare il parquet da configurare su S3 come archiviazione dei dati. http://arnon.me/2015/08/spark-parquet-s3/

Spark esegue solo l'elaborazione e utilizza la memoria dinamica per eseguire l'attività, ma per archiviare i dati è necessario un sistema di archiviazione dei dati. Qui hadoop entra in funzione con Spark, fornisce l'archiviazione per Spark. Un motivo in più per utilizzare Hadoop con Spark è che sono open source ed entrambi possono integrarsi facilmente tra loro rispetto ad altri sistemi di archiviazione dati. Per altri archivi come S3, dovresti essere complicato configurarlo come menzionato nel link sopra.

Ma Hadoop ha anche la sua unità di elaborazione chiamata Mapreduce.

Vuoi conoscere la differenza in entrambi?

Controlla questo articolo: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

Penso che questo articolo ti aiuterà a capire

  • cosa usare,

  • quando usare e

  • come usare !!!


1

Sì, naturalmente. Spark è un framework di calcolo indipendente. Hadoop è un sistema di archiviazione di distribuzione (HDFS) con framework di calcolo MapReduce. Spark può ottenere dati da HDFS, nonché da qualsiasi altra origine dati come database tradizionale (JDBC), kafka o persino disco locale.



0

Sì, Spark può funzionare senza Hadoop. Puoi installare Spark nella tua macchina locale senza Hadoop. Ma Spark lib viene fornito con le librerie pre Haddop, ovvero vengono utilizzate durante l'installazione sul computer locale.


-5

No. Richiede l'installazione completa di Hadoop per iniziare a funzionare - https://issues.apache.org/jira/browse/SPARK-10944


1
Questo non è corretto, funziona bene senza Hadoop nelle versioni attuali.
Chris Chambers,

1
@ChrisChambers Ti andrebbe di elaborare? Il commento su quel problema dice "In effetti, Spark richiede classi Hadoop, non importa cosa", e nella pagina dei download ci sono solo opzioni per una versione precostruita di Hadoop o una con Hadoop fornito dall'utente. E i documenti dicono "Spark utilizza le librerie client Hadoop per HDFS e YARN". e questa dipendenza non sembra essere opzionale.
NikoNyrh

1
@NikoNyrh corretto. Ho appena provato a eseguire l'artefatto di download "fornito dall'utente Hadoop" e ottenere immediatamente una traccia dello stack. Desidero inoltre che il percorso di classe di Spark venga disaccoppiato dalle classi principali di Hadoop. Ma per scopi di prototipazione e test, non prendo alcun problema a parte la dimensione del download (120 MB qualcosa) tutto sommato. Oh bene. Saluti!
Jesús Zazueta

Traccia dello stack in questione:$ ./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
Jesús Zazueta
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.