Big data y Hadoop
Seguro que has oído hablar de Hadoop como un tipo de solución o plataforma cuando hablamos del Big Data pero sin saber dónde ubicar Hadoop dentro de todo lo que engloba el término Big Data.
Hadoop es una herramienta utilizada para la gestión de Big Data y todo lo que el Big Data implica, como es la gestión de grandes cantidades de datos. Esta herramienta a la vez tiene sus propios componentes principales que hacen que tenga características ventajosas en el análisis y procesamiento de Big Data y sea útil para varios casos de uso.
Tabla de contenidos
¿Que es Hadoop?
Hadoop es un entorno de desarrollo software que fue desarrollado expresamente para el almacenamiento, procesamiento y análisis del Big Data y es el software que lo lidera.
Si entramos en los detalles de su arquitectura, Hadoop es un sistema de software de código abierto que se utiliza para almacenar, procesar y analizar grandes volúmenes de datos y a la vez ejecutar aplicaciones en clústeres de hardware comercial. Proporciona también almacenamiento masivo para cualquier tipo de datos y como elemento a destacar es que tiene un enorme poder de procesamiento y su capacidad de procesar tareas o trabajos concurrentes en un entorno virtual limitado.
Como características principales de Hadoop destacaríamos que es un software distribuido, escalable, tolerante a fallos y Open Source. Explicamos más en detalle cada de estas características principales:
• Distribuido: que sea un software distribuido significa que se ejecuta en un cluster de ordenadores, es decir, un conjunto de ordenadores interconectados por una red entre ellos y que trabajan de forma coordinada para llegar todos al mismo fin. El software estará instalado en cada uno de estos ordenadores de forma individual pero trabajaran como conjunto de forma que el usuario final no notará que está trabajando desde un cluster. Es decir, cada uno de estos ordenadores tendrá almacenada una parte de los datos y Hadoop tomará las decisiones de donde almacenar cada fichero, operará del mismo modo en el procesamiento de datos.
• Escalable: cuando se incrementa el número de ordenadores que forman parte del cluster se incrementa de forma lineal tanto la capacidad de almacenamiento como de procesamiento del cluster con lo que a mayor número de ordenadores más volumen de datos a almacenar y más velocidad de procesamiento. Esta proporción de linealidad entre la capacidad del sistema y el número de nodos o ordenadores no se mantiene en todos los sistemas, es una característica concreta de Hadoop, en otros sistemas es posible que llegados a un determinado número de ordenadores, por más máquinas que se añadan, la capacidad el sistema se mantiene y perdería esa linealidad.
• Tolerante a fallos: tenemos el problema que en todos los sistemas distribuidos hay fallos constantes debemos tratar de sectorizar el sistema de forma que si se producen fallos en un ordenador no afecte a la totalidad del sistema y este pueda seguir funcionando con normalidad. Esto se consigue asignando la tarea de “nodo maestro” a uno de los ordenadores de modo que este monitoriza el estado de los otros ordenadores, si se produce un error en uno de los ordenadores del cluster el nodo maestro reasigna las tareas al resto de ordenadores. Siempre habrá un ordenador secundario con tareas de “nodo maestro” por si produce un fallo en el ordenador que tiene asignada esta misión. Cuando el ordenador que tenía el error se ha recuperado, se vuelve a introducir en el cluster del sistema automáticamente.
• Open-source: Hadoop es un software open-source. Esto significa que es un sistema de código abierto, que el código de programación del software es visible y puede ser descargado y modificado por cualquier persona con conocimientos de programación, una vez modificado su código puede ser vuelto a distribuir con las modificaciones incorporadas.
Además tiene características comunes con otras herramientas para el análisis de Big Data como son:
• Flexibilidad: es una base de datos no relacional y a diferencia de las bases de datos relacionales en sistemas tradicionales, no tiene que procesar previamente los datos antes de almacenarlos. Puede almacenar tantos datos como desee y de cualquier tipo y decidir cómo utilizarlos más tarde. Cuando nos referimos a estos datos se incluyen datos no estructurados como texto, imágenes y videos.
En comparación con los sistemas, Hadoop tiene una nueva estrategia de funcionamiento para la gestión de datos que elimina los cuellos de botella que tienen los sistemas tradicionales. Los datos no se almacenan en una base de datos central sino que los datos se distribuyen en bases más pequeñas junto al ordenador de procesamiento.
• Escalabilidad: la escalibad del sistema es otra de las características de Hadoop. Puedes incrementar la capacidad del sistema incrementando el número de ordenadores o nodos para que tenga capacidad para almacenar y procesar más datos sin ralentizarlo.
¿Que relación hay entre la aparición de Hadoop y Big Data?
Hadoop surge debido a las necesidades de Google, fue en el momento en que a Google le surgió la urgente necesidad de disponer de una solución o software que le permitiera continuar procesando datos al mismo ritmo que los procesaba hasta el momento. Este ritmo se vio ralentizado porqué la cantidad y variedad de datos se veía incrementada por razones de tiempo muy bajas debido a los fenómenos Big Data como los datos procedentes de redes sociales o Iternet of Things (IoT) y el tiempo de procesamiento se veía incrementado.
Actualmente en internet se generan a diario una cantidad de datos que hace unos años era impensable y por ello las tecnologías anteriores no estaban preparadas para esto. En la sociedad actual producimos en internet en un solo día más datos que en siglos. La necesidad de análisis de estos datos es lo que denominamos Big Data y Hadoop es una de las herramientas líder diseñadas para esta tareas.
Ventajas de Hadoop
Hadoop presenta varias ventajas y beneficios para el área de negocio de aquellas empresas que se plantean su implementación.
Hadoop es un sistema con unos costes de implementación relativamente bajos ya que se trata de un software gratuito y su implementación en un hardware, entendiendo como hardware donde se instala el software, no es muy costosa. Esto implica que el retorno de la inversión sea rápido a parte de dar la posibilidad de afrontar nuevos retos para le negocio.
¿De las características de Hadoop cuál crees que es la más ventajosa: ser un sistema de código abierto o un sistema distribuido con tolerancia a los fallos?