Hablar hoy en día de “Big Data” ya no es nuevo ni extraño. El término se encuentra ya en el ámbito de lenguaje común técnico y no está restringido a los especialistas en tratamiento y gestión de datos. Sin embargo, vale la pena delimitar algunos conceptos para evitar malentendidos.
¿Qué es Big Data?
La primera pregunta que toca responder es que entendemos por “big data”. La definición más sencilla es “tecnologías y aplicaciones para procesar datos a gran escala, para los que las soluciones estándar no pueden dar respuesta”.
Que tengamos muchos datos (de orden de TB y PB) es un prerrequisito de big data. Sin embargo, si no nos interesa un análisis de estos datos sino un mero repositorio histórico, entonces no tenemos “big data”.
¿De dónde viene Big Data?
Para ponernos en la situación, nada mejor que un ejemplo. Supongamos que tenemos una gran empresa multinacional de venta al cliente final. Cada hora generamos 2 petabytes de datos de transacciones y ventas (1 petabyte son 1.000 terabytes, que son 1.000.000 de gigabytes). Si queremos analizar estos datos, ¿cómo lo haríamos?
La respuesta “natural” es abrir el fichero de 2 PB y procesarlo. Suponiendo que nuestro sistema de disco duro sea de los buenos y tenga una capacidad de transferencia de datos de 200 MB/s, para procesar un 1 TB (1000 GB) estaríamos 1 hora y 23 minutos. Para procesar 2 PB, necesitaríamos 2776 horas de disco. Todo esto para procesar 1 hora de datos recogidos.
¿Qué otra opción nos queda? Paralelizar.
Distribuyamos el fichero de 2 PB en 10.000 discos duros iguales al anterior. En un segundo ahora podremos procesar 2 TB de datos (200 MB por disco x 10.000 discos). Para procesar todo el fichero de 2 PB necesitamos tan sólo 16 minutos. Bueno, la verdad es que necesitaríamos 16 minutos y muchos discos duros.
El problema de la paralelización es la coordinación y el troceado de los datos de entrada y salida para que todos los nodos (ordenadores y procesos en paralelo) tengan trabajo que hacer. Esto solía ser difícil de programar.
Hadoop
Dado que las grandes empresas tuvieron este problema hace ya unos años, hoy disponemos de su tecnología distribuida como open source bajo el nombre de Apache Hadoop. Es la versión “commodity” de lo que hace diez años era patrimonio de Googles, Facebooks, Twitters y demás empresas de volumen enorme de datos.
Hadoop se suele instalar en clústeres de muchas máquinas, llamadas nodos, que pueden ser maestros (coordinadores) y trabajadores (machacas, vaya…).
Hadoop en realidad es una serie de tecnologías bajo un paraguas de marca común:
- HDFS (Hadoop Distributed File System) es la tecnología de más bajo nivel, que abstrae el almacenamiento de los diferentes nodos en un almacenamiento común.
- HBase es una base de datos clave-valor que utiliza HDFS para almacenar su contenido.
- YARN es la tecnología de Hadoop que coordina los recursos de los nodos de trabajo en un clúster.
- Tez (y anteriormente MapReduce) es un algoritmo de paralelización de trabajo entre varios nodos. Es una pieza clave del funcionamiento de Hadoop.
- Hive es el intérprete de lenguaje SQL que traduce las consultas en trabajos de Tez.
- Pig es un lenguaje de definición de trabajos de carga, manipulación y consulta de datos.
- Storm es un mecanismo de tratamiento de datos en tiempo real, usando flujos (streams) en vez de tablas o ficheros.
- Ambari es la interfaz web de gestión del clúster de Hadoop.
Hay más tecnologías como Spark, Zeppelin etc, pero son más especializadas.
¿Y en Azure?
Microsoft Azure dispone de un servicio gestionado de Hadoop llamado HDInsight. Con HDInsight no hay que instalar ni configurar los clústeres, sino provisionar el clúster y usarlo (previo pago, claro).
Además de HDInsight, en Azure se pueden crear máquinas virtuales con Hadoop usando por ejemplo la imagen de HortonWorks Sandbox.
Resumen
Procesar conjuntos de datos enormes en un tiempo aceptable ya no es patrimonio de empresas como NASA, Google o Facebook. Hadoop supuso la democratización de la tecnología de “big data” y convirtió un problema cualitativo (¿cómo hago esto?) en cuantitativo (cuesta X euros).
Ahora nos queda ponernos al día con estas tecnologías para poder aplicarlas en los escenarios donde sean viables.
SharePoint and O365 Architect – MVP | Soluciones Microsoft | SOGETI ESPAÑA
0 comments on “La democratización de Big Data”