domingo, 20 de marzo de 2016

5- Apache Hadoop: Map & Reduce

Map&Reduce

MapReduce es un modelo de programación por lotes para el procesamiento distribuido de datos. Permite paralelizar de forma sencilla trabajo sobre grandes volúmenes de datos, encargándose de distribuir diferentes tareas a los nodos de su sistema.

Características de MapReduce

  • Distribución de tareas y paralelización automáticas
  • Tolerancia a fallos.
  • Herramientas de monitorización disponibles
  • Funcionamiento interno transparente. El programador sólo debe preocuparse de introducir los algoritmos de lógica de negocio.
  • Escalabilidad horizontal: Si necesita más potencia, basta con poner más nodos.
  • Permite desplazamiento del algoritmo en lugar de los datos.
  • Su arquitectura se basa en un nodo maestro (JobTracker) y múltiples nodos esclavos (TaskTracker)
  • MapReduce está formado por dos funciones definidas por el usuario: Función MAP y función REDUCE, y una fase “Shuffle and sort” que las vincula.


Hay que tener en cuenta que solo puede usarse para problemas divisibles en partes en los que las soluciones de cada parte del problema son independientes de las soluciones de las otras partes.
Por ejemplo: Para sumar 100000 números se puede paralelizar el trabajo y dará el mismo resultado.

Funcionamiento esquemático de MapReduce

  • El JobTracker recibe el algoritmo que va a ejecutar y lo primero que hace es buscar todos los bloques de información que van a ser necesarios en HDFS (Es por esto que existe un fuerte vínculo entre m M/R y HDFS).


  • Posteriormente reparte cada bloque de información entre distintos nodos (taskTrackers) y por cada bloque de información, el jobtracker va a generar una tarea Map (Pequeña parte del trabajo total) que se ejecuta en el servidor que contiene el bloque.


  • Después se produce una fase Shuffle que se encarga de ordenar por Key los resultados de la fase Map y combinarlos en una lista en base a esa Key. Esto se envía a la siguiente fase: Reduce.

Finalmente se termina con las tareas Reduce que se ejecutan en los TaskTracker y se almacenan los resultados en el sistema HDFS.

Twitter @SierraBares
Reacciones:

0 comentarios:

Publicar un comentario