Apache Hadoop es un framework opensource para escribir y ejecutar aplicaciones distribuidas que procesan grandes cantidades de datos.

El Objetivo es solucionar los problemas tradicionales de la computación a gran escala.

Las premisas sobre las que se asienta el framework son las siguientes:

  • Accesibilidad

Hadoop se puede ejecutar en grandes cluster de ordenadores o en servicios de cloud computing

  • Robustez

Tiene una gran tolerancia a fallos. Asume que es fácil que haya problemas de hardware debida a la gran cantidad de nodos sobre los que se puede ejecutar

  • Escalabilidad

Permite escalar horizontalmente mediante la inclusión de más nodos en el cluster

  • Simplicidad

Facililta el desarrollo de programas que se paralelicen sobre su arquitectura

Los dos pilares básicos: HDFS y MapReduce

  • HDFS es un sistema de ficheros distribuido sobre Hadoop con una alta tolerancia a fallos y diseñado para poder ser utilizado sobre hardware económico

HDFS

  • Map Reduce es un modelo para el procesamiento de datos a través de múltiples nodos

MapReduce

Cada nodo se encarga de procesar los datos almacenados en su nodo y ello se realiza en dos fases: Map y Reduce (optativa)

  • Map: En esta fase de mapeo se leen los datos en formato de clave/valor y produce una salida que puede ser nula u otras parejas de clave/valor

map(in_key, in_value) -> (inter_key, inter_value) list

Después de la fase Map los datos son combinados y ordenados (Shuffle and Sort)

  • Reduce: En esta fase se procesan los datos asegurándose que todos los datos con una misma clave se procesan en el mismo proceso Reduce y el resultado se escribe en el sistema de ficheros (HDFS)

Ejemplo del un proceso MapReduce para contar palabras

MapReduceWordCount2

 

Anuncios