ANTECEDENTES
EL CONCEPTO DE BIG DATA
En 1997 los investigadores de la NASA Michael Cox y David Ellsworth utilizaron por primera vez el
término Big Data. La situación se originó al afrontar un problema de visualización de datos, cuando
comenzaron a experimentar dificultades para manejar grandes volúmenes de datos. Se puede
decir que en ese momento nació el término Big Data.
Desde aquel año han ocurrido muchas cosas. Lo que hoy en día entendemos como Big Data y su
aplicación ha cambiado mucho en su uso.
PRINCIPALES HITOS
Algunas de las primeras empresas que se enfrentaron al fenómeno de datos masivos fueron las
compañías de Internet, como Google, Facebook, Yahoo! o Twitter.
Estas compañías tenían el gran reto de gestionar grandes volúmenes de datos en un tiempo
razonable, ya que la información sólo les era de utilidad si llegaba a tiempo.
En el año 2002, en el contexto tecnológico que se desarrollaba, la infraestructura de la que
disponían no les permitía conseguir sus objetivos, ya que debían manejar demasiados datos para
los que la infraestructura existente no daba un soporte. Por ello se plantearon realizar una gran
inversión en plataformas novedosas de gestión de datos.
Entre estas compañía, fue Google quién realizó el mayor avance en esta área y en concreto para
resolver el problema de la creación de índices invertidos, estructuras de datos del estilo:
<Palabra>:<Lista de documentos que contienen Palabra>
¿QUÉ MOTIVÓ A GOOGLE A REALIZAR ESTE AVANCE?
Veamos algunas cifras para entenderlo.
En aquellos años existían aproximadamente 20+ miles de millones de webs con una media de 20
Kilobytes = 400+ terabytes.
Una máquina puede leer aproximadamente entre 30 y 35 MB por segundo. Esto nos lleva a que
necesitaría 4 meses para leer las webs, y necesitaría aproximadamente +1000 Discos duros, sólo para
almacenar los datos en crudo.
Si en lugar de una máquina utilizamos 1000 máquinas la tarea podría realizarse en menos de 3 horas,
pero esta solución origina otros problemas como:
• Coordinación y comunicación entre las diferentes máquinas.
• Gestión y tolerancia a los fallos que se generan en el proceso. Depuración de problemas.
• Estado y reporte de cada tarea/actividad en cada máquina.
• Optimización de los procesos.
• Manejo de los datos locales.
Todos estos inconvenientes debían solucionarse en un tiempo que permitiera sacar un
beneficio a la información existente, para realmente ser de utilidad.
Map/Reduce, fue la solución que generaron entre 2003 y 2004.
Consiste en un modelo de programación para dar soporte a la computación paralela sobre grandes
colecciones de datos en grupos de computadoras. Es decir, Map/Reduce maneja la complejidad
del trabajo en clúster (un clúster es un conjunto de máquinas que trabajan de manera coordinada
en la solución de un problema) gracias a sus principales características:
• Distribución automática de actividades a cada máquina del clúster (paralelización).
• Manejo de la gestión de la carga.
• Optimización de las transferencias de información necesaria a disco y en la red.
• Manejo de fallos de máquinas.
• Robustez.
Con esta nueva infraestructura de procesamiento, Google describió como crear un framework,
permitiendo manejar un volumen de datos antes desconocido de manera sencilla, ocultando toda
la complejidad y la tolerancia a fallos en una serie de librerías.
La base del desarrollo de Map/Reduce se puede resumir en una serie de publicaciones clave, en
materia de infraestructura de Big Data, difundidas por Google:
• En 2003 publica un artículo en el que describe el sistema de archivos distribuidos que
utilizan, GFS (Google File System).
• En 2004 publican un artículo sobre el tratamiento masivo de datos en clúster. Map/Reduce: Simplified Data Processing on Large Clusters.
• En 2006 publican un artículo sobre BigTable, describe como tener un Sistema distribuido
de almacenamiento para datos estructurados. A Distributed Storage System for Structured
Data.
Estas tres publicaciones fueron claves para el futuro del Big Data, ya que en ese momento Doug
Cutting estaba desarrollando un motor de búsqueda Nutch y se estaba encontrando con
problemas de escalabilidad. Al leer los artículos publicados por Google, entendió que eran la
solución a su problema de escalabilidad en el buscador Nutch.
La solución fue tan poderosa que derivó en un proyecto conocido con el nombre de Apache
Hadoop (nombre del elefante amarillo que tenía su hijo).
Hadoop, es el sistema de código abierto que más se utiliza para almacenar, procesar y analizar
grandes volúmenes de datos (cientos de terabytes, petabytes o incluso más), estructurados o no,
archivos de registro, imágenes, video, audio, comunicación, etc. Tiene una gran comunidad que
sustenta su desarrollo e innumerables proyectos asociados. Estos proyectos cuando tienen
suficiente madurez se acaban incorporando como parte de las distribuciones de Hadoop.
A partir del año 2007, se comenzó a extender el uso del Big Data de manera generalizada en el
mundo empresarial y de negocios para el tratamiento de grandes volúmenes de datos.
En 2008 aparece Cloudera.
Esta compañía la fundan un antiguo ejecutivo de Oracle, y tres ingenieros que provienen de las
empreas Google, Yahoo! y Facebook. Doug Cutting se une al proyecto un año más tarde.
La clave: un software accesible.
Una gran parte del software que se utiliza en las plataformas de tratamiento masivo de datos es
Open source, es decir, que no hay que pagar licencias por ello.
Esto ha sido clave para la expansión de esta tecnología. La barrera de las licencias que antes
imponían las grandes corporaciones se terminó y la tecnología está al alcance de cualquiera.