Continuando con nuestros artículos sobre Big Data, viene la cuestión de implementarlo, el como “operativizar” el Big Data al interior de nuestra organización; como lo hago realidad, pues al respecto diremos que en la actualidad existen algunas plataformas tecnológicas que permiten la implementación de las aplicaciones de Big Data, entre las que podemos destacar la de Google: Google Map Reduce actualmente reemplazado por DataFlow: FlumeJava; la de IBM: Spectrum Scale formalmente conocido como IBM General Parallel File System (IBM GPFS™), entre otras propietarias; y Hadoop éste último es el más difundido y está basado en una filosofía Open Source y es parte de un proyecto de la organización Apache, y que debido a su continua evolución y complejidad se ha convertido en todo un “ecosistema”, estando conformado por una serie de sub-proyectos/módulos que a continuación podemos visualizarlo:
Cada módulo tiene un fin específico en el ecosistema; sin embargo, de todos éstos, dos son los más importantes y representativos, algo así como el “core” y son los que prácticamente definen a este ecosistema: el HDFS y el Map Reduce.
HDFS y MapReduce: Los proyectos Core de Hadoop
El HDFS Hadoop Distributed File System; es un sistema de archivos distribuidos con tolerancia a fallas y con “auto-curación”, diseñado para convertirse en el estándar de grupos de servidores. Y que ha sido concebido específicamente para procesar inmensas cantidades de datos, donde la escalabilidad, la flexibilidad y el rendimiento son críticos. HDFS acepta datos en cualquier formato, independientemente del esquema, optimizando además el uso del ancho de banda, y escalando su despliegue de datos desde el orden de los 100 peta bytes a más 1.
Entre las principales características de HDFS, podemos mencionar:
- Arquitectura escalable: Permite añadir servidores con mucha facilidad para incrementar la capacidad global.
- Alta disponibilidad: Soporta misiones de aplicaciones y flujos de trabajo altamente críticos.
- Tolerancia a fallas: Recuperación automática y sin problemas ante fallas inesperadas
- Acceso flexible: Marcos de trabajos múltiples y abiertos para la socialización y montaje de sistema de archivos.
- Balance de carga: Permite colocar sus datos de forma inteligente y flexible y de tal manera que obtengas la máxima eficiencia y utilización.
- Replicación sintonizable: Múltiples copias de cada archivo proporcionan la protección de sus datos con un alto rendimiento computacional.
- Seguridad: Permiso de archivos basados en POSIX para usuarios y grupos, con posibilidad de integración opcional a LDAP.
Finalmente, el HDFS es replicado a través de múltiples nodos para obtener el rendimiento computacional esperado y la debida protección de los datos, como se puede apreciar en la siguiente figura.
MapReduce; por otro lado es un esquema de trabajo escalable, con capacidades de procesamiento paralelo y que trabaja de manera dinámica y combinada con HDFS como un motor/programa que se ejecuta en cada nodo y hace los cálculos. Con Map Reduce y Hadoop, el computo es ejecutado donde se encuentra localizada la data, sin necesidad de estar “moviendo” la data a una localización especifica; el almacenamiento y el computo coexisten en el mismo nodo físico del cluster o grupo de servidores. Map Reduce procesa inmensas cantidades de datos sin ser afectado por los tradicionales cuellos de botella, ni las limitaciones del ancho de banda, pudiendo así tomar ventaja de su proximidad a la data.
Entre las principales características de MapReduce podemos mencionar:
- Arquitectura escalable: Permite añadir servidores para incrementar su capacidad.
- Seguridad y Autenticación: Opera con la seguridad de HDFS y de HBase para asegurar que solo los usuarios aprobados puedan operar con la data del sistema.
- Gestor de recursos: Emplea la localidad de la data y recursos para determinar las operaciones de cómputo más óptimas.
- Programación optimizada: Completa los trabajos, tareas según su priorización.
- Flexibilidad: Los procedimientos pueden ser escritos virtualmente en cualquier lenguaje.
- Resilencia y Alta disponibilidad: Múltiples trabajos y tareas de trazabilidad aseguran que los trabajos fallen independientemente y se restablezcan automáticamente.
En la siguiente imagen podemos apreciar como MapReduce opera con la data “deslocalizada”
MapReduce, divide la carga de trabajo en múltiples tareas que pueden ser ejecutadas en paralelo.
Bueno, llegamos al final de este segundo artículo, algo más denso y más técnico. En el siguiente post abordaremos los modelos de distribución de Hadoop.
Referencias
1 Información sobre HDFS y MapReduce por la empresa Cloudera
2 Guía de comprador rápido de Hadoop (Un manual técnico resumido y recomendable)