La verdad acerca de Hadoop


Hadoop-Logo1En la prensa, el nombre de Hadoop suele mencionarse como si se tratase de una única tecnología o incluso un producto. Nada más lejos de la realidad y, lo que es peor, este hecho crea unas falsas expectativas en el sector sobre la complejidad de usar Hadoop en entornos reales. He pensado que estaría bien aclarar este concepto y ofrecer una idea general de los principales componentes de Hadoop y el modo en que pueden usarse en el sector de los servicios financieros. 

En primer lugar, Hadoop no es una única tecnología o producto; es un marco de tecnologías de código abierto relacionadas que proporciona un entorno de computación fiable y escalable.

Hadoop se basa en dos tecnologías esenciales:

  • HDFS (Hadoop Distributed File System): un sistema de gestión de archivos distribuido. Hemos usado HDFS, por ejemplo, para almacenar archivos XML que representan ingentes cantidades de datos comerciales. HDFS permite almacenar años y años de datos, conteniendo tanto información actual como archivada, algo que no está al alcance de un sistema de archivos individual o una base de datos.
  • MapReduce: un modelo de programación para la gestión de procesos de computación distribuida. MapReduce ofrece una API de Java para dividir una tarea, que se puede realizar en paralelo, en paquetes y distribuirla en un conjunto de servidores. Hemos usado MapReduce para mejorar el rendimiento de procesos ETL, por ejemplo, la carga, la estandarización y el enriquecimiento diarios de datos procedentes de decenas de millones de operaciones financieras recopiladas de un gran banco de inversión.

Con HDFS y MapReduce podemos lograr muchas cosas, pero también existen diversas herramientas agrupadas bajo el nombre Hadoop que resultan necesarias para crear una solución completa y lista para su uso empresarial:

  • Sqoop: permite transferir datos en masa entre HDFS y bases de datos relacionales.
  • Flume: recopila y transmite flujos de datos a HDFS.
  • Oozie: coordina y programa tareas de MapReduce para vincularlas y crear flujos de trabajo más complejos.
  • Zookeeper: realiza el mantenimiento de la información de configuración y sincroniza servicios en Hadoop.

HDFS y MapReduce también son tecnologías de muy “bajo nivel” que no son siempre sencillas de usar, especialmente para el personal no técnico. Se han desarrollado diversas herramientas sobre ellas a fin de ofrecer una interfaz más sencilla, en especial para la gestión del almacenamiento de datos y su análisis:

  • HBase: una base de datos distribuida para almacenar grandes cantidades de datos tabulares (“millions of columns, bilions of rows ”).
  • Hive: infraestructura de almacenamiento de datos para consultas ad hoc. Gracias a su sintaxis estándar, Hive resulta muy útil en manos de analistas que dominan SQL.
  • Pig: marco de ejecución de flujos de datos y lenguaje de procedimiento que permite el procesamiento y el análisis de los datos. Al igual que Hive, Pig crea tareas de MapReduce en ejecución y es una buena forma de distanciarse de la programación de bajo nivel.
  • Mahout: una biblioteca escalable de aprendizaje automático y minería de datos. Mahout proporciona algoritmos de agrupamiento, clasificación y filtrado colaborativo y, además, resulta útil para ordenar grandes volúmenes de datos con objeto de extraer información valiosa.

Como se puede observar, Hadoop no es una sola cosa, es un conjunto de herramientas y tecnologías. Cuando un cliente dice “queremos usar Hadoop”, sé que todavía quedan por decidir muchas opciones tecnológicas. Trabajamos con nuestros clientes para entender su problema y diseñar una solución completa y unificada. En definitiva, no es tan sencillo como lo parece en la prensa.

Este artículo fue publicado originalmente en www.finextra.com