Como persona de negocio, CEO o director de tu área deberías conocer o al menos tener claro lo que es Hadoop. Recuerda: “Cuanta más información e insights tengamos, mayor capacidad tendremos para tomar mejores decisiones y ser más creativos”. Las principales características de Hadoop son la escalabilidad, capacidad de almacenamiento y el procesamiento virtualmente ilimitado. ¿Y en qué se parece al Titanic? Déjame que te cuente algunas cositas sobre lo que es y después nos meteremos en la comparativa con el barquito de Jack y Rose.
Es un sistema que tiene 2 grandes componentes, HDFS y MapReduce:
La estructura se organiza en nodos y clusters. El sistema divide los datos y los guarda repartidos entre los diferentes nodos del cluster. Hay 2 tipos de nodos que llamaremos maestros y trabajadores:
-Nodos maestros, se encargan de dividir, coordinar y distribuir las tareas y los recursos generales en pequeñas partes.
-Los nodos trabajadores son los que realizan las diferentes mini tareas que se les han encargado sobre las partes de los datos que se les han asignado.
¡Escalabilidad y procesamiento a medida! Se pueden “levantar” o apagar clusters y nodos, según la necesidad por lo que al reducir el tamaño de los clusters, estaremos reduciendo también el coste.
Se encarga principalmente de dos tareas, por un lado, gestiona y planifica los recursos y por otro se encarga del procesamiento.
El sistema de procesamiento MapReduce, consta de dos fases: Map y Reduce (muy creativos, a la hora de poner los nombres como ya ves).
En la fase Map se encarga de identificar y distribuir datos y la fase de Reduce se encarga de hacer agregaciones. Como te comentaba en el título, esta tecnología está siendo reemplazada por lenguajes como Pig o Hive que son mucho más fáciles y prácticos, generan código MapReduce pero no hacen pasar al usuario cada día por la batalla de las termópilas para hacer una simple tarea.
En los últimos años, pudimos presenciar la aparición de un nuevo componente para facilitarnos la vida: Yarn.
Yarn separa HDFS(el almacenamiento) de MapReduce (procesamiento) asumiendo esa tarea de gestión y planificación de recursos que MapReduce convertía en un auténtico infierno y abre el ecosistema Big Data a nuevos componentes como Spark, Tez,etc.
Hadoop siempre ha funcionado muy bien a la hora de analizar grandes volúmenes de datos usando el viejo truco de dividir y paralelizar pero tiene grandes carencias. A medida que los clientes han ido teniendo diferentes pains y necesidades, Hadoop ha comenzado a experimentar lo que en su momento sintió el Titanic al tocar con el iceberg, comenzó a hacer aguas por todos lados lo que provocó la aparición de nuevos componentes (parches para hacer que el barco siguiera flotando y evitar así repetir la catástrofe). Hablo de componentes complementarios a Hadoop como Hive, Pig, Storm para escenarios en tiempo real o bases de datos NoSql como MondoDB, Hbase, Cassandra e incluso Spark, concebido para funcionar con Hadoop o de manera autosuficiente.
Hemos ido detectando necesidades de negocio en nuestros clientes que iban muy alineadas con las necesidades globales del mercado y las cuales Hadoop no podía satisfacer como:
-Consultar de forma sencilla, rápida, eficiente e interactiva los datos para buscar patrones
-Organizar mucha información desde una perspectiva de negocio
-Acceder a la información en tiempo real o casi real
-Contar con modelos predictivos utilizando técnicas de Advanced Analytics
¿Cómo sería la foto general del ecosistema Hadoop con todos estos componentes que lo complementan?
Puede ser un DWH (la tendencia es hacer migraciones hacia Cloud Data Platforms por su escalabilidad y velocidad como Snowflake), Datamarts, Apis de redes sociales como Twitter, Linkedin, Instagram, Facebook, Tiktok, CRMs o sensores de IOT en puntos físicos.
Consiste en coger los datos de las diferentes fuentes y distribuirlos en los componentes de la arquitectura Big Data que sean más adecuados: Sqoop, Kafka o Flume.
-Tiempo no real (batch): Hive o Pig.
-Tiempo real (o casi): Spark, Storm.
Cada proyecto y cada cliente es un mundo, incluso, el mismo cliente en diferentes momentos puede tener diferentes tipos de necesidades según el mercado y su madurez tecnológica en términos de Big Data.
Por ello, en un primer momento hay que identificar el caso de uso, el tipo de algoritmos analíticos que se necesita desarrollar y después tomar la decisión sobre qué tecnologías son las ideales para aplicar el caso de uso con éxito.
Como has podido comprobar, el ecosistema Hadoop no ha parado de crecer con la incorporación de nuevos componentes para llegar allí donde Hadoop por sí solo no podía llegar e incluso la aparición de tecnologías como Spark llamadas a sustituirlo.
Referencias:
Medios: Revista Cloud Computing, Big Data Ticbyte, Diario La Razón
Libro: González Díaz, I. «Big Data para Ceos y Directores de Marketing», (2017)