Hadoop, el elefante memorioso; NoSQL y la Big Data
Uno de los conceptos que esta dando mucho que hablar hoy en día en el mundo de IT es el de Big Data, el cual puede tener un impacto de enormes proporciones no solo en el mundo de la tecnología de la información, sino también en la sociedad.
Actualmente estamos viviendo la Era de los datos, con el enorme crecimiento en el uso de herramientas digitales como internet y los dispositivos móbiles, estamos generando datos constantemente, con cada movimiento que damos navegando en internet o interactuando en las redes sociales como Facebook o Twitter, estamos dejando una huella permante que queda almacenada en algun Data Center. El volumen de información que estamos generando a cada segundo es enorme.
Este gran crecimiento en el volumen de datos, ha obligado a rever la forma en la que diseñamos nuestros sistemas, y es así, como el concepto de Big Data y la nueva dsiciplina de los cientificos de datos esta surgiendo.
La Big Data es la rama de las Teconlogías de la información que estudia las dificultades inherentes a la manipulación de grandes conjuntos de datos. El verdadero poder de la Big Data reside en que se trata sobre el comportamiento de la gente, y no sobre sus datos, consiste en encontrar los patrones de relaciones y comportamientos en el caos de los grandes volumenes de datos que producimos. Los datos son tantos, que todos se vuelven estadistacamente significativos, lo que significa, que los métodos tradicionales que utilizamos para analizarlos se han vuelto obsoletos.
Para hacer frente a los nuevos desafíos que provoca la Big Data, nuevas herramientas informaticas estan apareciendo, sobre todo en el mundo del software open source; es así, como el movimiento de NoSQL y proyectos como el de Apache Hadoop, van ganando popularidad.
El movimiento NoSQL hace referencia a una serie de nuevos sistemas de gestion de datos, que se alejan del tradicional modelo relacional que tienen las populares bases de datos actuales (Oracle, DB2, MsSQL, MySQL, PostgreSQL, etc); la principal diferencia que caracteriza a estas nuevas bases de datos es que no poseen un esquema estructurado (tablas y sus relaciones) y no utilizan el lenguaje SQL para realizar sus consultas. Las bases de datos NoSQL surgieron principalmente para hacer frente al tratamiento de datos que los sistemas tradicionales de RDBMS no podían manejar del todo bien (como ser toda la nueva información que surge del uso de las redes sociales). Se suelen agrupar en tres grandes grupos:
- Bases de Datos Documentales: Donde la información se va almacenando en diferentes documentos, estos documentos son un conjunto ordenado de claves con valores asociados. El principal exponente de este tipo de base de datos NoSQL es MongoDB.
- Bases de Datos clave-valor: Donde los datos se van almenzanenda en pares (clave-valor). Un ejemplo de este tipo de bases es Redis.
- Big Tables: Grandes tablas de estructura tabular que se caracterizan por ser distribuidas y de alta eficiencia. Las principales exponentes de este grupo son Cassandra y HBase.
El proyecto Apache Hadoop es un framework de software , desarrollado en el lenguaje de programción Java, que permite el procesamiento distribuído de grandes conjuntos de datos a través de clusters de computadoras utilizando simples modelos de programación. La verdadera utilidad de Hadoop radica en su capacidad para escalar facilmente de uno a miles de servidores distribuidos, cada uno aportando su poder de computación y su capacidad de almecenamiento.
El proyecto Apache Hadoop posee varios módulos e incluye varios subproyectos, todos ellos relacionados a la computación distribuída y al procesamiento de grandes conjuntos de datos.
Los modulos que forman parte del framework Hadoop son:
- Hadoop common: que incluye un conjunto de componentes e interfaces para el sistema de archivos distribuído que implementa Hadoop. Son las herramientas comunes que se utilizan en todos los módulos.
- Hadoop Distributed File System (HDFS): Una de las herramientas principales del framework, el sistema de archivos distribuído que corre entre los clusters de computadoras y que brinda el acceso a los datos para las aplicaciones.
- Hadoop YARN(Yet Another Resource Negotiator): Es un sistema general de gestion de trabajos para correr aplicaciones distribuidas.
- Hadoop MapReduce: La herramienta principal del framework, y a la que Hadoop debe su gran popularidad. Consiste en un modelo de procesamiento de datos distribuidos que corre en forma paralela entre los clusters de computadoras que constituyen la arquitectura del framework Hadoop. MapReduce es todo un modelo de programación para el procesamientos de datos. (En un próximo artículo estare profundizando sobre este modelo).
- Avro: Un sistema para una serialización eficiente de datos para su storage(almacenamiento).
- HBase: Una base de datos NoSQL orientada a columnas y que corre en forma distribuida. Utiliza internamente el sistema de archivos de Hadoop(HDFS) para el almacenamiento de sus datos y posee una gran integración con el paradigma MapReduce para las consultas.
- Hive: Un Data Warehouse que corre en forma distribuida. Al igual que HBase utiliza HDFS para el almacenamiento de los datos, Hive adicionalmente nos proporciona un lenguaje de consulta similar a SQL (que internamente es tranformado en trabajos de MapReduce) para realizar nuestras consultas.
- Pig: un lenguaje de alto nivel para explorar el flujo de datos entre grandes conjuntos de datos.
- ZooKeeper: Un servicio de coordinacion de aplicacion distribuidas de alto rendimiento.
- Sqoop: Una herramienta para mover eficientemente datos entre una base de datos relacional y HDFS.
Hadoop es la herramienta que grandes empresas como Facebook, Yahoo, Linkedin y Twitter han elegido para almacenar todos los datos de sus usuarios y saberlo todo sobre ellos. Las recomendaciones de gente que podríamos conocer que nos ofrecen facebook y linkedin estan basadas en el paradigma de MapReduce.
Si bien la Big Data trae muchas oportunidades, también abre muchas interrogantes, como ser: ¿Cuán ética es esta recoleccion de datos silenciosa que realizan las grandes empresas sobre nuestros datos?; ¿Quienes son los verdaderos dueños de esos datos?¿Qué pueden hacer las empresas con ellos?, el debate esta abierto…
Espero les haya gustado este artículo.
Saludos,