Cabecera personalizada

El blog de Mikel Niño
Emprendimiento digital, startups, Big Data Analytics y nuevos modelos de negocio

Procesamiento de fuentes continuas de datos (“streams”) en tiempo real: Apache Storm

Una arquitectura de procesamiento de datos masivos que se basa en el paradigma MapReduce (como la que nos proporciona Apache Hadoop) está diseñada para trabajar en lo que se conoce como “batch” (por lotes, o en diferido), es decir, partimos de que ya hemos hecho una tarea de recopilación de esos grandes volúmenes de datos “en crudo” y, una vez que los tenemos todos almacenados en nuestro sistema, los procesamos usando estas soluciones. De todas maneras, este no es el único enfoque que podemos emplear para analizar datos, ya que en ocasiones no nos interesa (o no es posible) tener que almacenarlos todos esos datos antes de procesarlos, sino que queremos procesarlos “al vuelo”, a medida que se generan y nos llegan de su fuente original, y descartarlos una vez extraída la información relevante. Para este tipo de enfoques nacieron soluciones como Apache Storm.

Este enfoque alternativo que acabamos de describir es lo que se conoce como análisis de fuentes continuas o “streams” de datos en tiempo real. Por citar algunos casos en los que se utiliza este enfoque, pensemos por ejemplo en la monitorización de una red de telecomunicaciones a nivel internacional, o en el análisis de los miles de “tweets” que se generan cada segundo. En estos casos nos puede interesar procesar dichos datos a medida que se generan y extraer conclusiones al momento que nos permitan actuar y tomar decisiones en tiempo real, sin pasar por una fase previa de almacenamiento. Este enfoque es por supuesto compatible con el procesamiento en batch, y nada quita para que podamos realizar un análisis en tiempo real para la toma de decisiones instantánea y, en paralelo, ir almacenando los datos para un posterior análisis en diferido y de mayor profundidad.

Apache Storm es una de las principales herramientas con las que contamos para este tipo de análisis de streams de datos en tiempo real. Nathan Marz es la persona detrás de la creación de Storm, que se inició cuando Marz trabajaba en BackType, empresa que en 2011 fue adquirida por Twitter. El conocimiento práctico que Marz tenía de herramientas como Apache Hadoop le sirvió para idear el diseño de Storm, que proporciona un framework utilizando una serie de abstracciones en cierto modo similares a las ideas de “map” y “reduce” que se utilizan en Hadoop, pero en este caso enfocadas al procesamiento distribuido de streams de datos en tiempo real. De hecho muchas referencias a Apache Storm lo etiquetan como "el Hadoop del tiempo real"

En esta detallada entrada que Nathan Marz escribió en su blog en octubre de 2014 (cuando el proyecto Storm cumplió con los requisitos para superar la fase de “incubación de proyectos” de la Fundación Apache para pasar a ser un proyecto de primer nivel) tenemos un resumen de los principales hitos que fue atravesando el proyecto Storm (y Marz con él), proporcionándonos además una muy interesante perspectiva sobre el desarrollo y lanzamiento de un proyecto open source, con muchas claves útiles en aspectos de comunicación y creación de comunidad de usuarios.

No hay comentarios:

Publicar un comentario