Data Analytics

SPARK, la «Modernita» del Big Data

Obsolescencia, innovación, vanguardia, avances tecnológicos, marketing, progreso. . .Podemos achacarlo a muchas variables o factores en mayor o menor medida pero las tecnologías están en continuo avance y lo que el año pasado era top, este año es viejo y pasado de moda.

Una de las industrias donde este hecho se ve año tras año es en el mundo smartphone.

Te compras un móvil nuevo y al año siguiente el nuevo modelo parece estar a mil años luz de tu viejo, triste y lento móvil (sí, el que hace un año era un cohete y tratabas con tanto cariño y cuidado como si de un bebé se tratara). No quiero entrar en detalles de la obvia y aplastante obsolescencia programada, pero la evolución del mundo tecnológico tiene fácil comparación a esta.

Estés donde estés y estés como estés, la vida sigue funcionando, rodando y avanzando y si no te subes al tren, te quedas desactualizado y olvidado.

Hadoop y Spark, Spark y Hadoop

Nuestro “Titanic tecnológico”, Hadoop, con su truquito de dividir y paralelizar consigue que tareas que antes se hacían en días se hagan en horas, sin embargo (agárrate a la silla) esto se puede hacer mucho más rápido.

¿Cómo?

En vez de trabajar en el disco, existe la posibilidad de trabajar en la memoria o hacerlo de manera híbrida y así fue como llegó al mundo nuestro queridísimo Spark.

Spark Keyrus

No quiero enfrentarles, de verdad, de hecho, Spark se apoya en el HDFS de Hadoop dado que no cuenta con su propio sistema de ficheros distribuido y en su gestor de recursos Yarn (mucho más maduro que Standalone, el gestor de recursos de Spark) pero por darle un poquito de chispa a este artículo. . . vamos a comparar Spark con Hadoop Map Reduce:

Spark realiza trabajos unas 80 veces más rápido y además consigue reducir las complejidades que nos vamos encontrando con Hadoop. La gran ventaja de Spark es que cuenta con un planificador denominado DAG que establece tareas a realizar y optimiza los cálculos.

Recuerda que. . .

-La programación en MapReduce sigue una metodología propia que hace que haya que resolver los problemas según esa manera de trabajar por lo que todo se vuelve más complejo

-Para hacer análisis SQL en Hadoop hay que añadir Hive

-Para programar en lenguaje de alto nivel pero a la vez sencillo, usaremos Pig

-Si quieres acercarte a lo que sería un análisis en tiempo real con Hadoop, deberías incluir Storm

-¿Y para llevar a cabo Analítica Avanzada y Machine Learning? Tendrías que incorporar herramientas como R, Python o Mahout

Spark pretende solucionar estas complejidades reuniendo todas las funcionalidades que vamos a necesitar dentro de un entorno Big Data con componentes como SparkSQL para consultas y análisis interactivos, SparkStreaming para Machine Learning, además de un lenguaje de alto nivel como Scala, la integración nativa para Python y R y ser además compatible con Java ¿Qué tal suena todo esto?

Ventajas de Spark

Spark, el motor de procesamiento distribuido en memoria en clusters big data, se ha posicionado como el entorno Big Data para los próximos años.

Me gustaría que recordaras que Hadoop tiene dos componentes: Almacenamiento (HDFS) y el Procesamiento (el tortuoso MapReduce). En muchas arquitecturas Big Data y gracias a Yarn, Spark sustituye a MapReduce como procesador pudiendo ser utilizado para acceder a datos de cualquier parte de la plataforma Big Data (HDFS, bases de datos NoSql…) o fuera de ella como los Cloud DWH.

Con esta tecnología podemos cubrir prácticamente cualquier caso de uso Big Data sin necesitar nada más:

1. Acceso a cualquier fuente de datos y hacer consultas SQL

2. Hacer análisis interactivos sobre datos en memoria de forma eficiente

3. Dar soporte, sin necesidad de acudir a otro componente, a casos de uso que necesiten operaciones en tiempo casi real

4. Análisis de redes (grafos)

5.Con Scala, un lenguaje de más alto nivel que MapReduce, podemos realizar procesos de limpieza y encadenamiento de varios procesos para transformar y preparar datos de manera más sencilla y eficiente

6. Conectar herramientas de Smart BI para visualización de datos, reporting, etc.

7.Presenta una mejor integración que Hadoop para lenguajes orientados a Advanced Analytics como Python y R, aunque también podemos desarrollar algoritmos de Machine Learning con su propia librería o librerías externas como H20

¿Todo el monte es orégano o es oro todo lo que reluce?

Spark, sin duda alguna, le está comiendo todo el terreno a Hadoop dado que las necesidades del mercado van hacia la simplificación de la instalación, automatización e integración de los procesos de negocio. Pero ¿qué le falta a Spark?

La mayor debilidad de Spark es que no trabaja en tiempo real, si no casi real. Es decir, no trabaja cada evento de manera individual en su procesamiento streaming si no que agrupa varios batches que se dan en un periodo temporal o en número de eventos.

Flink soluciona esto, y se postula como herramienta que sustituirá a Spark a medio-largo plazo, dado que dejamos algún caso de uso fuera de Spark sin embargo son aplicaciones poco frecuentes en proyectos Big Data por lo que a Spark aún le queda un largo recorrido y muchos buenos momentos que darnos.

Referencias:

Medios: Revista Cloud Computing, Big Data Magazine, Retina el País

Libro: González Díaz, I. «Big Data para Ceos y Directores de Marketing», (2017). Podéis adquirirlo aquí

Deja un comentario

A %d blogueros les gusta esto: