¿Puede apache spark funcionar sin hadoop?

Respuestas:

53

Spark puede ejecutarse sin Hadoop, pero algunas de sus funcionalidades se basan en el código de Hadoop (por ejemplo, manejo de archivos Parquet). Estamos ejecutando Spark en Mesos y S3, que fue un poco complicado de configurar, pero funciona muy bien una vez hecho (puede leer un resumen de lo que se necesita para configurarlo correctamente aquí ).

(Editar) Nota: desde la versión 2.3.0, Spark también agregó soporte nativo para Kubernetes

Arnon Rotem-Gal-Oz
fuente
96

Spark es un motor informático distribuido en memoria.

Hadoop es un marco para almacenamiento distribuido ( HDFS ) y procesamiento distribuido ( YARN ).

Spark puede ejecutarse con o sin componentes de Hadoop (HDFS / YARN)


Almacenamiento distribuido:

Dado que Spark no tiene su propio sistema de almacenamiento distribuido, tiene que depender de uno de estos sistemas de almacenamiento para la computación distribuida.

S3 - Trabajos por lotes no urgentes. S3 se adapta a casos de uso muy específicos cuando la ubicación de los datos no es crítica.

Cassandra : perfecta para el análisis de datos en tiempo real y una exageración para los trabajos por lotes.

HDFS : ideal para trabajos por lotes sin comprometer la ubicación de los datos.


Procesamiento distribuido:

Puede ejecutar Spark en tres modos diferentes: Independiente, YARN y Mesos

Eche un vistazo a la pregunta SE a continuación para obtener una explicación detallada sobre el almacenamiento distribuido y el procesamiento distribuido.

¿Qué tipo de clúster debo elegir para Spark?

Ravindra babu
fuente
23

De forma predeterminada, Spark no tiene mecanismo de almacenamiento.

Para almacenar datos, necesita un sistema de archivos rápido y escalable. Puede utilizar S3 o HDFS o cualquier otro sistema de archivos. Hadoop es una opción económica debido a su bajo costo.

Además, si usa Tachyon, aumentará el rendimiento con Hadoop. Es Hadoop altamente recomendado para el procesamiento de chispas de apache . ingrese la descripción de la imagen aquí

Venu A Positivo
fuente
6

Sí, la chispa puede funcionar sin hadoop. Todas las funciones principales de Spark seguirán funcionando, pero se perderán cosas como distribuir fácilmente todos sus archivos (código y datos) a todos los nodos del clúster a través de hdfs, etc.

Quantum_random
fuente
6

Según la documentación de Spark, Spark se puede ejecutar sin Hadoop.

Puede ejecutarlo como modo independiente sin ningún administrador de recursos.

Pero si desea ejecutar una configuración de múltiples nodos , necesita un administrador de recursos como YARN o Mesos y un sistema de archivos distribuido como HDFS, S3, etc.

usuario2359003
fuente
3

Sí, puede instalar Spark sin Hadoop. Eso sería un poco complicado. Puede hacer referencia a arnon link para usar parquet para configurar en S3 como almacenamiento de datos. http://arnon.me/2015/08/spark-parquet-s3/

Spark solo procesa y usa memoria dinámica para realizar la tarea, pero para almacenar los datos necesita algún sistema de almacenamiento de datos. Aquí hadoop entra en juego con Spark, proporciona el almacenamiento para Spark. Una razón más para usar Hadoop con Spark es que son de código abierto y ambos pueden integrarse entre sí fácilmente en comparación con otros sistemas de almacenamiento de datos. Para otro almacenamiento como S3, debería ser complicado configurarlo como se menciona en el enlace anterior.

Pero Hadoop también tiene su unidad de procesamiento llamada Mapreduce.

¿Quieres saber la diferencia en ambos?

Consulte este artículo: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

Creo que este artículo te ayudará a entender

  • que usar,

  • cuando usar y

  • cómo utilizar !!!

Abhijit Kumar
fuente
1

Sí, por supuesto. Spark es un marco de cálculo independiente. Hadoop es un sistema de almacenamiento de distribución (HDFS) con marco de cálculo MapReduce. Spark puede obtener datos de HDFS, así como de cualquier otra fuente de datos, como una base de datos tradicional (JDBC), kafka o incluso un disco local.

ssnijik
fuente
0

Sí, la chispa puede funcionar sin Hadoop. Puede instalar Spark en su máquina local sin Hadoop. Pero Spark lib viene con bibliotecas pre Haddop, es decir, se utilizan durante la instalación en su máquina local.

grano de amarnath
fuente
-5

No. Requiere una instalación completa de Hadoop para comenzar a funcionar: https://issues.apache.org/jira/browse/SPARK-10944

usuario1391095
fuente
1
Esto es incorrecto, funciona bien sin Hadoop en las versiones actuales.
Chris Chambers
1
@ChrisChambers ¿Le importaría dar más detalles? El comentario sobre ese problema dice "De hecho, Spark requiere clases de Hadoop pase lo que pase", y en la página de descargas solo hay opciones para una versión prediseñada de Hadoop específica o una con Hadoop proporcionado por el usuario. Y los documentos dicen que "Spark usa bibliotecas cliente de Hadoop para HDFS y YARN". y esta dependencia no parece ser opcional.
NikoNyrh
1
@NikoNyrh correcto. Intenté ejecutar el artefacto de descarga 'Hadoop proporcionado por el usuario' e inmediatamente obtuve un seguimiento de la pila. También deseo que la ruta de clases de Spark se desacople de las clases principales de Hadoop. Pero para fines de creación de prototipos y pruebas, no tomo ningún problema más que el tamaño de la descarga (120 MB) en total. Oh bien. ¡Salud!
Jesús Zazueta
Stack trace en cuestión:$ ./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