Instalación de Apache Hadoop

Intruduccion

Hadoop es un framework que permite el procesamiento distribuidor de una gran cantidad de datos atraves de clusters usando un modelo simple de programación. Hadoop puede ser visto también como un sistema de archivos distribuido.

Hadoop tiene como objetivo solucionar el problema de almacenar la información que supera las capacidades de una única máquina, para lo cual, hadoop gestionará y permitirá el almacenamiento de la información en diferentes máquinas conectadas a través de una red.

HDFS es un sistema de archivos pensado para el almacenamiento de archivos "grandes" (por encima de 100 MB) y en la que el acceso a esa información está orientado hacia procesamiento en batch o lectura de tipo "write once"-"read-many-times" (ideal para temas de MapReduce -concepto que detallaré más en proximos articulos-) y cuyo diseño está pensado para ser ejecutado en máquinas "baratas".

En un cluster de HDFS encontramos dos tipos de nodos diferentes:

  • Namenodes: son los encargados de gestionar el espacio de nombres del sistema de archivos
  • Datanodes: son los que almacenan los bloques de información y los recuperan bajo demanda

Configuración de Apache Hadoop Distributed File System

La versión de hadoop que se usará en este articulo es 1.1.0

Lo primero que haremos será configurar el sistema de archivos distribuido de Hadoop, en nuestro caso usaremos el modo pseudo-distribuido que nos permite simular un cluster en nuestra máquina local.

Los archivos de configuración de hadoop se encuentra en el directorio "conf" incluido en la distribución de Hadoop.

El primer archivo que vamos a editar es hadoop-env.sh. En este archivo configuraremos JAVA_HOME:

 

Después editaremos el archivo core-site.xml:

 

La propiedad fs.default.name nos permite indicar el sistema de archivos por defecto de nuestra distribución de Hadoop. En este caso hemos especificado que el sistema de archivos por defecto será "hdfs", que el "namenode" será localhost y el puerto 8020 (puerto por defecto).

A continuación editaremos el archivo hdfs-site.xml:

 

Esta propiedad indica el nivel de replicación de cada bloque (tolerancia a fallos), que por defecto es 3. En modo pseudo-distribuido en el que sólo existe una máquina en el cluster no tiene sentido tener un valor superior a 1.

Ahora debemos configurar SSH en nuestra máquina, para permitir que Hadoop pueda inicializar los nodos del cluster. Además debemos configurarlo para permitir que se pueda conectar sin password. Por lo tanto, lo primero que debemos hacer es tener instalado ssh.

Debemos permitir acceso sin login:

 

Si tienes claves ya generadas, es importante hacer backup de las claves, para dejárlo luego todo como estaba (por ejemplo, si tienes llaves para github)

Para probar que lo hemos hecho bien:

 

Una vez hemos configurado todo lo necesario, debemos formatear el sistema de archivos ejecutando:

 

Ahora sólo queda arrancar HDFS:

 

Vamos a copiar algo a nuestro sistema de archivos.

 

La información es similar al comando ls, con la distinción que en la segunda columna nos indica el factor de replicación del archivo.

En el siguiente articulo, explicaré como crear un programa MapReduce para procesar archivos de texto grandes usando el API de hadoop.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

Muy buena información

No tenía idea que existía este framework.

0_o