Esistono dipendenze tra Spark e Hadoop ?
In caso contrario, ci sono funzionalità che mi mancheranno quando eseguo Spark senza Hadoop ?
Risposte:
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
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)
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.
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.
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 .
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.
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.
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 !!!
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.
Sì, Spark può essere eseguito con o senza l'installazione di Hadoop per maggiori dettagli che puoi visitare: https://spark.apache.org/docs/latest/
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.
No. Richiede l'installazione completa di Hadoop per iniziare a funzionare - 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