Procesamiento distribuido con MapReduce Hadoop
Hadoop MapReduce implica el procesamiento de una secuencia de operaciones sobre conjuntos de datos distribuidos. Los datos se compone de pares clave-valor, y los cálculos sólo tienen dos fases: una fase de un mapa y una fase de reducir. Trabajos de MapReduce definidos por el usuario se ejecutan en los nodos de computación del clúster.
En términos generales, un trabajo MapReduce se ejecuta como sigue:
Durante la fase de Mapa, los datos de entrada se divide en un gran número de fragmentos, cada uno de los cuales está asignado a una tarea mapa.
Estas tareas mapa se distribuyen en todo el clúster.
Cada tarea mapa procesa los pares clave-valor de su fragmento asignado y produce un conjunto de pares clave-valor intermedio.
El conjunto de datos intermedio está ordenada por clave, y los datos ordenados se divide en una serie de fragmentos que coincide con el número de reducir tareas.
Durante la fase de Reducir, cada reducen tarea procesa el fragmento de datos que se asignó a la misma y produce un par clave-valor de salida.
Estos reducen las tareas también se distribuyen en todo el clúster y escriben su producción a HDFS cuando haya terminado.
El marco Hadoop MapReduce en antes (pre-versión 2) comunicados de Hadoop tiene un único servicio maestro llamado JobTracker y varios servicios de esclavos llamados TaskTrackers, uno por cada nodo del clúster.
Cuando usted envía un trabajo MapReduce a la JobTracker, el trabajo se coloca en una cola y luego se ejecuta de acuerdo con las reglas de programación definidos por un administrador. Como era de esperar, la JobTracker gestiona la asignación de mapa-y-reducir tareas a los TaskTrackers.
Con Hadoop 2, un nuevo sistema de gestión de recursos está en el lugar llamado HILO (abreviatura de Yet LAtro Resource Manager). HILO ofrece servicios de programación y gestión de los recursos genéricos para que pueda ejecutar más que simples aplicaciones MapReduce en el clúster Hadoop. La arquitectura JobTracker / TaskTracker sólo podía correr MapReduce.
HDFS también tiene una arquitectura maestro / esclavo:
Servicio de Maestro: Llamado NameNode, que controla el acceso a los archivos de datos.
Servicios de esclavos: Llamado DataNodes, que están distribuidos por un nodo del clúster. DataNodes gestionar el almacenamiento que está asociada con los nodos en los que se ejecutan, sirviendo a los clientes leer y escribir solicitudes, entre otras tareas.