domingo, 15 de enero de 2012

Más de Hadoop!!



Sigo leyendo más de Hadoop un framework que ya estuvimos hablando:

http://emanuelpeg.blogspot.com/2009/10/apache-hadoop-es-un-proyecto-java-de.html
http://emanuelpeg.blogspot.com/2009/10/hadoop-hbase.html

El proyecto comenzo como funcionalidad de Nutch pero rapidamente se convirtio en un proyecto aparte; basado en Google GFS y MapReduce. Iniciado por Doug Cutting.

Apache Hadoop es un framework para computación distribuida y persistencia distribuida el cual tiene las siguientes características:

  • Permite montas fácilmente y de manera fiable clusters con multitud de nodos
  • Implementa Map/Reduce y sistema de archivos distribuido (HDFS)
  • y es Open Source!!


Buenísimo pero que es MapReduce? Es un modelo de programación aplicable a problemas en los que la solución de una subparte no sea dependiente de las soluciones de las demás subpartes. Es un estilo "divide y vencerás"; se divide el problema e subproblemas independientes y se soluciona cada uno de forma independiente. El MapReduce de hadoop tiene una arquitectura maestro/esclavo.


  • Un único maestro (JobTracker): Responsable de la gestión de tareas asignadas a esclavos, las monitoriza y se encarga de re-ejecutarlas si han fallado.
  • N esclavos (TaskTracker) : Ejecutan la tarea asignada.

En principio pensado para Java, pero con Hadoop Pipes para C++ y se esta implementando Hadoop Streaming para el resto de los lenguajes.

HDFS: Hadoop Distributed File System. Es el framework encargado de simular un file system como si estuviera en un equipo pero este esta distribuido.

HDFS tiene una arquitectura maestro/esclavo, hay un maestro que tiene la responsabilidad de administrar y nodos que se guardan los archivos. Existen estrategias para recuperar el maestro, para eliminar el punto de fallo. Todos los protocolos que usa se implementan sobre TCP/IP.

Además cuenta con una serie de comandos que permiten utilizarlo:

get: Copia a local el archivo de HDFS

put: Copia desde local múltiples ficheros HDFS

strep: Cambia el factor de replicación

Comandos típicos: ls, mkdir, cp, cat, etc...

Bueno este fue un pequeño resumen sobre un gran proyecto.

Dejo links:
http://hadoop.apache.org/
http://hadoop.apache.org/hdfs/
http://hadoop.apache.org/mapreduce/