Por que usamos Apache Spark para nuestros proyectos de Big Data

 

La razones son:

Velocidad

Un programa en Spark se ejecuta hasta 100 veces más rápido que Hadoop Map reduce en memoria y 10 veces más rápido si el acceso es desde disco.

Spark tiene un sistema avanzado de ejecución de DAG que soporta flujos de datos cíclicos y cálculo en memoría. Ambas características hacen que Spark sea muy rápido.

Comparativa de una regresión logística entre Hadoop y Spark.

Facilidad de Uso

El diseño de Spark nos permite que sea muy fácil usarlo. Se pueden escribir aplicaciones en Scala, Java o Python.

Esto nos permite centrarnos más en la resolución de problemas.

Spark nos ofrece más de 80 operadores de alto nivel que nos permiten crear de una manera sencilla aplicaciones en paralelo.

Además nos permite programar interactivamente en Scala y Python desde la consola.

Este es un ejemplo en python de como contar el total de palabras de un fichero que está en HDFS.

text_file = spark.textFile(«hdfs://…»)
text_file.flatMap(lambda line: line.split())
    .map(lambda word: (word, 1))
    .reduceByKey(lambda a, b: a+b)

Proposito General

Una misma herramienta nos permite combinar SQL in memory, streaming, machine learning y grafos.

Entre las liberías que incluye Spark están: Spark SQL, MLlib para machine learning, GraphX para la gestión y cálculo de grafos y Spark Streaming. Todas estas librerías se puede combinar sin ningún problema en único proyecto.

 

Spark SQLSpark StreamingMLlib (machine learning)GraphX

Se ejecuta en cualquier sitio

Spark se puede ejecutar en Hadoop, Mesos, Hadoop YARN, standalone o en la nube. Puede acceder a practicamente cualquier fuente de información del mundo de Big Data incluido HDFS, CassandraDB, HBase, Hive, Tachyon, MongoDB, Elastic Search, S3, etc.