A día de hoy las organizaciones luchan por conseguir puntos de vistas diferentes de la cantidad de datos que obtienen. Esto incluye grandes cantidades de datos no estructurados como archivos, imágenes, videos, flujo de clicks o datos geo-espaciales. El principal desafío es analizar y procesar eficientemente tanto los datos estructurados como los no estructurados. Y por otra parte, una tarea fundamental en las compañías es tomar decisiones rápidamente con los datos que se obtienen en tiempo real.

Hadoop ofrece la posibilidad de almacenar y analizar petabytes de datos no estructurados. Hadoop es un framework para el procesamiento de datos a gran escala, soporta la ejecución de aplicaciones distribuidas y permite que las aplicaciones trabajen con miles de nodos y petabytes de información. Es un sistema tolerante a fallos, se ejecuta sobre un hardware de bajo coste y maneja de forma automática la replicación de datos. Es importante destacar que Hadoop no es un sustituto de una base de datos. Hadoop almacena datos en archivos per no los indexa. Si queremos encontrar algo, tenemos que ejecutar un trabajo MapReduce pasando por todos los datos.

 

Arquitectura

Hadoop esta soportado bajo el sistema de archivos distribuido HDFS (Hadoop Distributed File System) y el motor de ejecución MapReduce. En la Figura 1, podemos diferenciar cada uno de sus componentes y la arquitectura que tiene.

Figura 1: Arquitectura Hadoop
Figura 1: Arquitectura Hadoop

 

Vamos ahora a ver en líneas generales los dos grandes componentes de Hadoop, que son HDFS y Map Reduce, aunque se hablará más en detalle en futuros post.

HDFS – Hadoop Distributed File System

HDFS está inspirado en el sistema de archivos de Google. El sistema de archivos distribuido de Hadoop tiene como propósito organizar los archivos en un espacio de nombres jerárquico. HDFS tiene dos diferencias fundamentales respecto otros sistemas de archivos: HDFS puede abarcar múltiples máquinas y además HDFS se ejecuta en un espacio de usuario, al contrario que otros sistemas de archivos los cuales están estrechamente ligados al kernel del sistema operativo.

El sistema de archivos distribuido de Hadoop esta diseñado para almacenar de forma fiable archivos de tamaño grande en clusters. HDFS almacena cada archivo como una secuencia de bloques, todos los bloques del archivo excepto el último son del mismo tamaño. Los bloques pertenecientes a un archivo estarán replicados en diferentes clusters para la tolerancia a fallos. Tanto el tamaño de bloque como el factor de replicación se pueden configurar para cada archivo.

  • NameNode: Nodo único maestro, que controla el namespace del sistema de archivos y regula el acceso a los archivos de las peticiones clientes. Mantiene el rastro de que DataNodes tienen qué bloques de datos y usa esta información para controlar la jerarquía de todo el sistema de archivo.
  • DataNode: Son los responsables de servir las lecturas y escrituras desde el sistema de archivos cliente, realiza las operaciones como abrir, cerrar, renombrar, etc. de los archivos y directorios, además realizan la creación de bloques, eliminación y replicación bajo las instrucciones del NameNode.

MapReduce

MapReduce es un framework que permite la computación paralela sobre grandes colecciones de datos. Al igual que HDFS tiene también una arquitectura maestro/esclavo. Cuenta con un servidor maestro o JobTracker y varios servidores esclavos TaskTracker, uno por cada nodo del clúster. Veamos cuáles son las diferencias entre ellos:

  • JobTracker es el punto de interacción con los usuarios. Los usuarios envían los trabajos Map/Reduce al JobTracker, que los pone en una cola de trabajos pendientes y ejecuta en orden de llegada. El JobTracker gestiona la asignación de tareas y delega las tareas a los TaskTrackers. Los TaskTrackers ejecutan tareas bajo la orden del JobTracker.
  • MapReduce se basa en la idea de tomar una operación básica funcional y aplicarla, paralelamente, a gigabytes o terabytes de datos. Para lograr dicho paralelismo, necesitamos tener cada operación MapReduce independiente de las otras.

Hasta aquí la parte 1 de esta introducción sobre Hadoop, iremos profundizando más en el tema en los siguiente post, asique permaneced atentos!  🙂

Yolanda

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like