Este documento compara Apache Hadoop y Apache Spark, dos frameworks para procesar grandes cantidades de datos. Explica que Spark es más rápido que Hadoop debido a que usa memoria en lugar de disco, pero depende de Hadoop para almacenamiento. También describe las características clave de cada uno como RDDs, DAG y MapReduce. La conclusión es que ambos son complementarios y lo mejor es implementarlos juntos.
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
Congreso Academy Journal Celaya 2017
1. Spark:
la chispa con la
velocidad del rayo
¿será el sustituto
de Hadoop?
Presenta:
Ing. Fernando Alfonso Casas De la Torre
Asesor:
Dr. Jose Ruiz Ayala
Maestria en Sistemas Computacionales
Instituto Tecnologico de La Laguna
2. Spark: el clúster con la velocidad del rayo
“No solo es que el mundo esté sumergido en más
información que en ningún momento anterior, sino que esa
información está creciendo más deprisa. El cambio de
escala ha conducido a un cambio de estado. El cambio
cuantitativo ha llevado a un cambio cualitativo. Fue en
ciencias como la astronomía y la genética, que
experimentaron por primera vez esa explosión en la
década de 2000, donde se acuñó el término BIG DATA o
“datos masivos”.
Mayer-Schonberger & Cukier (2013)
3. Spark: el clúster con la velocidad del rayo
INTRODUCCION:
El concepto está trasladándose ahora hacia todas las áreas de la
actividad humana para ayudar en la toma de decisiones financieras,
económicas, demográficas, sociales y políticas. Las empresas y
organizaciones se han visto de pronto enfrentadas a la situación de que
la era digital, generadora de datos tiene tanta información que es
necesario analizarla y por tal motivo es necesario saber de qué
herramientas se puede disponer.
La presente investigación es para determinar si para tratar con BigData y
metadatos es mejor seguir usando las herramientas que ofrece Apache
Hadoop o escoger a su rival a decir de muchos: Apache Spark.
4. Spark: el clúster con la velocidad del rayo
Impacto e Interés:
Información obtenida de Google Trends 09/sep/2017
5. Spark: el clúster con la velocidad del rayo
Descripción de Hadoop y Spark
Tanto Apache Hadoop como Apache Spark son en esencia frameworks,
entornos de trabajo, estructuras conceptuales y tecnológicas con
componentes de software tales como bibliotecas, soporte a programas,
intérpretes de lenguaje, gestores de bases de datos, interfaces entre
otras herramientas que sirven a su vez para desarrollar y organizar
información y aplicaciones y así ayudar a definir proyectos de solución
informática para un problema relacionado con grandes cantidades de
datos.
6. Spark: el clúster con la velocidad del rayo
¿Qué es Apache Spark?
El producto Apache Spark desarrollado por la Universidad Berkeley de
California pose diversas características que lo hacen ser una solución
atractiva para el procesamiento masivo de datos:
• Velocidad
• Facilidad de uso
• Compatibilidad
• Versatilidad
7. Spark: el clúster con la velocidad del rayo
MapReduce y Apache Hadoop
MapReduce es un modelo de programación para computación paralela
para analizar grandes volúmenes de datos. El nombre del frameworks
está dado por dos funciones importantes que realiza: Map y Reduce.
Existen muchas implementaciones de MapReduce siendo las más
importante y conocida la de Apache Hadoop.
MapReduce tiene una estructura de master/Slave y cuenta con un
servidor maestro de tareas o JobTracker de los cuales hay uno por
clúster, además de varios servidores TaskTrackers, uno por cada nodo
del clúster. El JobTracker gestiona la asignación de tareas a los
TaskTrackers que además de hacer las tareas se revisan entre si e
informan al JobTracker de su estado.
.
8. Spark: el clúster con la velocidad del rayo
Hadoop y MapReduce
Hadoop gestiona los envíos de
información hacia y entre los nodos
del clúster. Map Reduce toma los
datos que Hadoop ha recopilado,
clasificado y ordenado dentro de los
elementos del clúster, en los cuales
se hace el procesamiento. Una vez
hecho el procesamiento el usuario
obtiene el resultado del clúster
.
9. Spark: el clúster con la velocidad del rayo
Proceso MapReduce
En la figura se aprecia que de los
componentes principales del
framework, unos hacen las
funciones de Map son ejecutadas
por los TaskTrackers mientras que
las funciones de Reduce son
ejecutadas por el JobTracker.
.
10. Spark: el clúster con la velocidad del rayo
Proceso MapReduce
Hadoop, se encarga de dividir el
trabajo en operaciones más
pequeñas, las ejecuta de una
manera distribuida dividiendo
trabajo, separa los archivos que
tienen los datos y repartiéndolos
entre las computadoras del clúster
para que sean procesados con
MapReduce.
.
11. Spark: el clúster con la velocidad del rayo
Operaciones y procesos interactivos de
Hadoop / MapReduce
12. Spark: el clúster con la velocidad del rayo
¿Cómo lo hace Spark?
COMPARATIVA:
MapReduce realiza la colaboración en conjunto de
muchas computadoras o nodos dentro de un clúster y
gracias a su diseño es posible agregar más nodos y
hacer crecer la estructura en la medida que la
información crece agregando más nodos al clúster.
Spark mantiene también esta escalabilidad lineal pero
agrega dos funcionalidades que potencian y mejoran
sustancialmente el modo de trabajo:
• Grafo Acíclico Dirigido (DAG, Directed Acyclic Graph)
• RDD.
contra
13. Spark: el clúster con la velocidad del rayo
DAG (Grafo Acíclico Dirigido)
Spark soporta el flujo de datos acíclico lo que significa
que para un determinado clúster crea un DAG al que le
asigna dos estados (Map o Reduce) y en donde cada
vértice será un nodo que tendrá la función de realizar un
proceso.
Recordando Matemáticas Discretas: un Grafo Acíclico Dirigido o
DAG (del inglés Directed Acyclic Graph), es un grafo dirigido que
no tiene ciclos; o sea que para cada vértice V no hay un camino
que empiece y termine en V ya que no tiene -en este caso- sentido
que termine una trayectoria en un camino dirigido a si mismo.
14. Spark: el clúster con la velocidad del rayo
RDD (Resilient Distributed Dataset)
Apache Spark mejora con respecto a los demás sistemas en cuanto a la
computación en memoria. Los conjuntos de Datos Distribuidos Elásticos
(RDD) es una estructura de datos fundamental de Spark.
Los datos se procesan en memoria y cuando la memoria RAM no es
suficiente, entonces se utiliza el almacenamiento temporal en disco. RDD
permite a los programadores realizar operaciones sobre grandes cantidades
de datos en clústeres de una manera rápida y tolerante a fallos.
Surge debido a que las herramientas existentes tienen problemas que hacen
que se manejen los datos ineficientemente a la hora de ejecutar algoritmos
iterativos y procesos de minería de datos. En ambos casos, mantener los
datos en memoria mejora el rendimiento considerablemente
15. Spark: el clúster con la velocidad del rayo
Operación interactiva en RDD Spark
16. Spark: el clúster con la velocidad del rayo
Operaciones y procesos de Hadoop y Spark
17. Spark: el clúster con la velocidad del rayo
Comparativa entre Hadoop y Spark
Característica Hadoop/ MapReduce Spark
USABILIDAD En MapReduce se tiene apoyo para complementos como Hive y Pig Spark tiene APIS muy sencillas para lenguajes como Scala, Pyton, Java y
SparSQL.
Soporta feedback en los comandos de consola REPL como si se tratara
de una consola UNIX
RENDIMIENTO PRO: Trabaja en discos duros lo que elimina el problema de
almacenamiento y da seguridad al evitar perdidas
CONTRA: Al accesar los discos el proceso se hace lento
PRO: Trabaja en memoria lo que acelera el procesamiento, pero aumenta
la cantidad de datos requiere de más memoria
CONTRA: El almacenamiento en memoria de grandes cantidades de
datos se le dificulta
SEGURIDAD Cuenta con un file-system y tiene módulos encargados de la
seguridad y el monitor.
Otorga a sus usuarios todos los beneficios de seguridad de
proyectos como Knix Gateway o Sentry por ejemplo.
Cuenta con HDFS y Hadoop YARN.
Otorga permisos de acceso a archivos para los clientes y usuarios.
Spark no cuenta con un file-system, necesita ejecutarse sobre HDFS para
acceder a un file system.
Requiere de YARN de Hadoop para controlar los archivos
VELOCIDAD Lee y escribe datos en disco tanto en el proceso como en etapas
intermedias
Es 100 veces más rápido en memoria y 10 veces más rápido en disco
reduciendo el número de cilcos de escritura y lectura por hacer las
operaciones en memoria.
OPTIMIZACIÓN Cuenta con diversas soluciones para optimizar tanto el código como
el procesamiento de archivos
Debe de ser optimizado de forma manual en base a los paquetes que
maneje y al tamaño de la memoria chache que se disponga
18. Spark: el clúster con la velocidad del rayo
CONCLUSIONES:
Spark es más rápido y eficiente que Hadoop pero esto es relativo y en base a
circunstancias. Apache Spark es un framework de código abierto para metadatos
muy rápido y de propósito general diseñado para altos estándares y velocidades de
procesamiento. Hadoop es un framework de código abierto para escribir aplicaciones
para datos estructurados y no estructurados en conjunción con tecnologías como
MapReduce que le ayuda a reducir los tiempos de proceso.
Ambos productos no compiten entre sí, sino que se complementan y lo lógico y
correcto es implementar una solución con ambos.
19. Spark: el clúster con la velocidad del rayo
Bibliografía
• SolidQ Summit. (20 de 08 de 2012). Recuperado el 02 de 09 de 2017, de Blog de SolidQ Summit:
http://blogs.solidq.com/es/big-data/que-es-mapreduce
• Blog de ASPGems siguiendo el dia a dia de ASPGems. (15 de 07 de 2015). Recuperado el 05 de 09 de 2017, de
ASPGems Soluciones agiles : https://aspgems.com/blog/apache-spark/7-razones-por-las-que-deberias-usar-apache-
spark
• Data Flair. (20 de 04 de 2017). Recuperado el 13 de 09 de 2017, de Sitio de enseñanza en línea Data Flair: http://data-
flair.training/blogs/limitations-of-apache-spark/
• Power Data. (17 de 01 de 2017). Recuperado el 20 de 07 de 2017, de Sitio web de Grupo Power Data:
http://blog.powerdata.es/el-valor-de-la-gestion-de-datos/spark-vs-hadoop-quien-saldra-vencedor
• Spark ligthing-faster clúster computing. (2017). Recuperado el 10 de 08 de 2017, de sitio web de Spark :
https://spark.apache.org/
• Wii3 Los últimos tutoriales de desarrollo web. (2017). Recuperado el 16 de 09 de 2017, de Sitio web de Wii3.com:
http://www.w3ii.com/es/
• Apache Spark Lightning-fast clúster computing . (2017). Apache Spark Foundation . Recuperado el 01 de Septiembre
de 2017, de Apache Spark Foundation : https://spark.apache.org/
• Esteso, M. P. (2017). Comunidad Geeky Theroy Open Source. Obtenido de Geeky Theory:
https://geekytheory.com/fundamentos-de-apache-hadoop-y-mapreduce/
• Luangsay, S. (05 de 01 de 2015). BBVA API Market. Recuperado el 05 de 09 de 2017, de BBVA API Market sitio de
APIs y APPS de BBVA para apoyo a empresas: https://bbvaopen4u.com/es/actualidad/spark-la-proxima-tecnologia-
estrella-de-big-data
• Mayer-Schonberger, V., & Cukier, K. (2013). BigData, la revolucion de los datos masivos. En V. Mayer-Schonberger, &
K. Cukier. Madrid: Publicaciones Turner.
• Morente Molinera, J. A. (09 de 02 de 2017). Fundación UNIR Universidad internacional de La Rioja. Recuperado el 10
de 09 de 2017, de Revista UNIR: http://www.unir.net/ingenieria/revista/noticias/hadoop-vs-spark/549201661941/
20. ¡Muchas Gracias por su atención!
Ing. Fernando Alfonso Casas De la Torre
Maestria en Sistemas Computacionales
Instituto Tecnologico de La Laguna