Hadoop y Spark, mejor juntos que por separado

No hay charla o conferencia sobre Big Data, que se precie de ser lo mástrending, en la que no se hable de Hadoop y Spark. Pero, en los últimos meses, no hacen más que aparecer agoreros que proclaman la muerte de Hadoop, cuando en realidad sigue siendo el líder como marco de código abierto y la base para gestión de proyectos Big Data en organizaciones de todo el mundo y de todos los sectores.

Es evidente que nuevos sistemas Big Data, como Spark, están ganando impulso; según datos de la Fundación Apache Software, a principios de 2015, más de 500 organizaciones estaban utilizando Spark en sus entornos de producción. Pero ¿significa esto el fin de Hadoop? Según algunos estudios esto no es así; las previsiones apuntan cifras en el mercado Hadoop, para 2020, que van desde los 16.000 millones, según MarketAnalysis.com, hasta los 50.200 millones de doláres, según Allied, pero en todos los casos resaltan crecimientos anuales muy por encima de los dígitos.

Sin embargo, más allá de los datos de mercado, demasiado a menudo nos seguimos planteando la falsa dicotomía de elegir entre una de estas dos herramientas, para abordar diferentes desafíos en nuestros proyectos de Big Data, cuando, en realidad, Hadoop y Spark no son mutuamente excluyentes.

Como seguramente muchos sepan, Hadoop es un entorno que se utiliza para almacenar grandes volúmenes de datos de una manera distribuida, y que a su vez permite procesarlos sobre hardware de productos básicos. Hadoop MapReduce realiza el procesamiento por lotes, aportando un análisis rápido y fiable tanto de datos estructurados como de datos no estructurados.

Por su parte, Spark es un motor de computación de propósito general que realiza el procesamiento de los datos en memoria, siendo compatible con la transmisión y el tratamiento distribuido. Habitualmente las organizaciones utilizan Spark para agregar registros de máquinas, detectar fraudes,  proporcionar recomendaciones de productos en línea o realizar campañas de marketing en tiempo real.

Para los programadores y desarrolladores Spark es fácil de aprender, al soportar una amplia gama de lenguajes que van desde Scala , su lenguaje nativo, hasta Python, R, Java y SQL.

Spark puede funcionar tanto de forma independiente del framework Hadoop, integrado con otras plataformas de almacenamiento, como ejecutado directamente en la parte superior de Hadoop, para aprovechar sus funciones de almacenamiento y administración de clústeres.

¿Qué valor aporta Hadoop a Spark?

  • Spark no cuenta con un sistema de almacenamiento independiente

Al integrarlo con Hadoop, las organizaciones pueden aprovechar muchas de las capacidades de Hadoop que necesita en sus entornos de producción. Por una parte utiliza YARN, para la planificar las tareas, gestionando los recursos a través de los nodos disponibles en el clúster. El sistema de archivos subyacente, sea HDFS o MapR-FS, es donde los datos se mantienen cuando el clúster se queda sin memoria libre, no olvidemos que Spark debe cargar los datos desde algún lugar para procesarlos. Además, sin olvidar, que las capacidades de recuperación de desastres son inherentes a Hadoop.

Se puede integrar Hadoop con Spark para tareas como la administración de clústeres y de datos para su procesamiento, así como para las cargas de trabajo de análisis.

  • Hadoop proporciona una mayor seguridad de los datos

Hadoop hace posible que las cargas de trabajo de Spark se desplieguen en los recursos disponibles en cualquier lugar de un clúster distribuido, sin necesidad de asignar y rastrear manualmente tareas individuales. Esto resulta crítico para cargas de trabajo de producción, especialmente en industrias reguladas como los servicios financieros o la asistencia sanitaria.

¿Qué valor aporta Spark a Hadoop?

  • MLlib, la biblioteca Machine Learning de Spark

Estos algoritmos de Machine Learning, proporcionan capacidades que no son fáciles de explotar en Hadoop MapReduce, sin el uso de un motor de computación de propósito general como Spark.

Son capaces de procesar más rápido, al ser ejecutados en memoria, en contraposición a los programas MapReduce, que tienen que mover los datos dentro/fuera de los discos en las diferentes etapas de su procesamiento.

  • Spark Resilient Distributed Datasets

Spark primero coloca los datos en RDD, para que puedan ser accedidos rápidamente. Esta funcionalidad contribuye de forma importante a las capacidades de un clúster Hadoop, al reducir los tiempos de retardo y aumentar el rendimiento. Además, los RDD, son resistentes porque Spark controla su linaje: siempre que hay un fallo en el sistema, los RDD se pueden recalcular utilizando la información previa.

En conclusión, son muchos los momentos que será mejor para nosotros usar ambas tecnologías, son múltiples las situaciones en que se complementarán entre sí, son muchos los desafíos a los haremos frente en mejores condiciones haciéndolas jugar juntas en el mismo equipo.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s