Big Data: Núcleo, Ecosistema y Business Intelligence por @Alogos_Learning

Según datos de enero de 2014, el tamaño de la World Wide Web es de más de 2.100 millones de páginas Web.  Fue en el año 2003 cuando Google y Yahoo! iniciaron de forma paralela sus trabajos en varios proyectos tecnológicos cuya finalidad era proveer una plataforma que permitiera procesar grandes cantidades de datos de la manera más eficiente posible.  El objetivo: indexar la web mediante sistemas distribuidos.

En los años 2003 y 2004 Google presentó dos white papers describiendo las tecnologías GFS o Google File System y MapReduce, al tiempo que Doug Cutting, por aquel entonces empleado de Yahoo!, trabajada en el proyecto Nutch, un motor open source de búsquedas en la Web.

A partir de los documentos publicados por Google, Doug Cutting realizó una serie de implementaciones que dieron lugar a Hadoop, una plataforma open source, actualmente dentro de la fundación Apache, y que implementa las tecnologías GFS y MapReduce mencionadas anteriormente.

Cuando hablamos de Big Data creo que es necesario distinguir tres aspectos básicos: por un lado el núcleo o “core components” de Hadoop, por otro lado “Hadoop ecosystem” y finalmente la parte de “Business Intelligence”.  Veamos a continuación brevemente cada uno de estos elementos.

Big Data: Hadoop Core Components.

¿Qué es Hadoop? Básicamente, Hadoop proporciona un sistema de archivos distribuidos y un framework para el análisis y transformación de grandes conjuntos de datos mediante el uso del paradigma MapReduce.

Una de las características principales de Hadoop es el particionamiento de los datos y su posterior procesamiento a través de decenas, centenares o miles de nodos.  En la actualidad los clusters Hadoop de Yahoo! abarcan unos 40.000 servidores, contando además con el mayor cluster Hadoop del mundo con alrededor de 4.500 servidores.

Hadoop se presenta como una solución a los problemas que actualmente se derivan de los sistemas distribuidos. ¿Cómo? Pues distribuyendo los datos en el momento en que son almacenados y procesando esos datos en el mismo lugar dónde están almacenados, evitando así el movimiento de grandes volúmenes de datos entre servidores.

El núcleo de Hadoop lo constituyen dos componentes: HDFS (Hadoop Distributed File System) y MapReduce.

HDFS es el sistema de archivos de Hadoop.  Cada archivo de datos almacenado es “troceado” en bloques de al menos 64MB y repartidos por los nodos que componen el cluster.  Una de las características de HDFS es que utiliza la replicación como método para la prevención de fallos, puesto que cada bloque de datos es replicado y almacenado en distintos nodos dentro del cluster, por defecto se realizan tres réplicas de cada bloque de datos.  Uno de los nodos, denominado NameNode, se encarga de controlar en cada momento qué bloques componen cada archivo y dónde se encuentra cada uno de los bloques y sus réplicas.

MapReduce es un modelo de programación para el procesamiento y tratamiento de grandes cantidades de datos en el cluster. MapReduce  basa su funcionalidad en complejos algoritmos matemáticos que permite distribuir una tarea a través de múltiples nodos. El proceso MapReduce se compone de tres fases: la primera es la función “map” o “mapper” en la que cada tarea opera sobre un único bloque HDFS y se ejecuta sobre el nodo dónde el bloque está almacenado, generando conjuntos de pares clave/valor intermedios.  La segunda fase es la denominada “shuffle & sort” y es la encargada de ordenar y consolidar los datos intermedios generados por los “mapper” una vez han finalizado.  La tercera fase se denomina “reduce” y opera sobre los datos generados en la fase “shuffle & sort” produciendo la salida del resultado final.

Big Data: Hadoop Ecosystem.

Además de los componentes del núcleo Hadoop analizados en el apartado anterior existen un conjunto de tecnologías asociadas que añaden valor y amplían las posibilidades del ecosistema Hadoop.  Algunas de ellas son las siguientes:

  • HBase. Un sistema de bases de datos NoSQL con una estructura de tablas y columnas y que opera en un capa por encima de HDFS.  HBase facilita la lectura y escritura a la base de datos desde una tarea MapReduce ejecutándose en el sistema.
  • Pig. Lenguaje de flujo de datos que permite escribir programas MapReduce cuando es necesario realizar tareas de orden más procedimental.
  • Hive. Tal y como define Yahoo! en su proyecto Hadoop, Hive es una infraestructura Data Warehouse que permite la escritura de programas MapReduce utilizando una especia de lenguaje SQL denominado HiveQL y que comparte algunas de sus características como el uso de tipos de datos primitivos o conectores JDBC y ODBC.
  • Avro. Sistema de serialización de datos.
  • ZooKeeper. Coordinación y configuración de procesos distribuidos.
  • Oozie. Aplicación Web basada en Java que permite controlar y programar flujos de tareas dentro del sistema Hadoop, así como la toma de decisiones en tiempo de ejecución.
  • Mahout. Es un framework open source que permite la creación de algoritmos que permiten a los sistemas aprender a partir de los datos, lo que se conoce como “machine learning”.
  • Sqoop. Herramienta para la transferencia de datos entre Hadoop y sistemas de bases de datos relacionales.
  • Flume. Servicio que permite la recolección de grandes cantidades de datos en streaming tales como archivos log a lo largo de un gran número de máquinas para procesarlos de forma periódica y extraer información analítica.

Big Data: Business Intelligence.

¿Qué hacemos con los datos una vez procesados y convertidos en información? ¿Cómo les añadimos valor?  Aquí es donde entra en juego el concepto de “business intelligence” o inteligencia empresarial, es decir, aquellas estrategias que nos permiten la toma de decisiones en base a los datos analizados.  Así, estas estrategias o procesos nos facilitan la creación de gráficos y su posterior análisis, reconocimiento de patrones, filtros colaborativos, realización de modelos de predicción, análisis y estimación de riesgos, indexación de datos, etc…

Big Data: Salidas profesionales.

Todo lo que hemos analizado hasta ahora nos permite vislumbrar un panorama optimista con relación a las salidas profesionales vinculadas a Big Data.  Básicamente, tres son los perfiles más demandados en las empresas del sector: administradores, desarrolladores y analistas de datos.

Los administradores son los encargados de la instalación, configuración y monitorización de clusters Hadoop para un funcionamiento óptimo, así como la implantación de medidas de seguridad y accesos multiusuario.

Los desarrolladores se encargan de la escritura de programas MapReduce así como la integración de éstos dentro de aplicaciones “business intelligence” o BI.  Por último los analistas se encargan de la creación de valor a través de todas las tecnologías del ecosistema Hadoop utilizando avanzados sistema de análisis sobre grandes volúmenes de datos multiestructura.

Big Data: ¿Quieres saber más?.

Si quieres profundizar más en todos los detalles relativos a Big Data, sus orígenes, Hadoop y su ecosistema y otros aspectos relacionados con sistemas de datos NoSQL puedes inscribirte en el webinar que Álogos Formación ofrecerá el próximo miércoles 12 de febrero de 2014.  La inscripción estará limitada a 150 participantes.  Puedes consultar detalles y precios enviando un e-mail a alogos@alogosformacion.com con tus datos personales y de contacto.