Hadoop es actualmente el marco de desarrollo para implantar el Big Data. Está formado por un conjunto de capacidades reales, automáticas y escalables que permiten gestionar el flujo de datos, transformando los datos en bruto (Raw Data) en valores (Insight).

Su creador fue Doug Cutting, quien lo donó a Apache Software Foundation (organización sin ánimo de lucro creada para dar soporte a los desarrollos de Software). Su nombre y el logo son debidos a la mascota de su hijo, un elefante de peluche llamado Hadoop.

Surge en 2004 a partir de un White Paper de Google que describía su sistema de ficheros. Doug no tuvo problema en implantarlo y mejorarlo. Hadoop satisface las necesidades básicas del Big Data: el almacenamiento y el procesamiento de datos, por lo que se basa en dos conceptos, como ya explicamos en nuestra ponencia en Try It! 2016, HDFS y MapReduce

El sistema distribuido de ficheros trabaja sobre grupos de ordenadores, organizados en lo que se llama un cluster, que puede incluir desde una máquina (nodo), hasta 30.000 según la web de Apache. Cada máquina puede tener varios discos.

Hadoop funciona en modo cliente-servidor. Existe un nodo máster que se encarga de la gestión del almacenamiento y procesado, o sea, de dónde está cada fichero de datos, de enviar las órdenes de procesado de los datos (Jobs) y de asegurar que todo queda procesado del modo más eficiente posible.

Los grandes ficheros de datos de entrada se trocean en tamaños menores (64GB ó 128GB) y cada trozo se replica al menos tres veces en nodos distintos. Así comienza el procesamiento en paralelo. Si alguno de los nodos falla, el máster detecta el fallo y asigna el trabajo a otro nodo disponible.

MapReduce trabaja mediante algoritmos simples de “clavevalor”. La parte de Map asigna la clave a la información que estamos buscando. El ejemplo estrella de los cursos de Hadoop es el algoritmo de contar palabras en un texto. La clave sería cada palabra, y el valor las veces que aparece. Primero contaríamos cada palabra, después ordenaríamos las palabras y finalmente, en la fase Reduce, sumaríamos las palabras que aparecen repetidas.

Con este método se ahorra tiempo de transferencia de ficheros, ya que el almacenamiento y el procesamiento se produce en el mismo sitio.

Hadoop trabaja en modo batch, es decir, ejecutando unos procesos tras otros. Está optimizado para leer cada fichero entero, por lo que está enfocado a trabajar con pocos ficheros grandes en vez de con muchos pequeños, porque lo carga en memoria y lo lee de una sola vez.

Por suerte, existe todo un ecosistema para trabajar con Hadoop, y no tener que escribir todo el código necesario para realizar la asignación de ficheros, el procesamiento, etc. Como veremos en nuestro próximo artículo.

chevron-down