Cómo instalar Hadoop con 3 comandos

Esta guía muestra cómo instalar un entorno de prueba Apache Hadoop, el cual permitirá ejecutar comandos básicos. La guía está planeada para tener un primer contacto con Apache Hadoop, y no para establecer un entorno de pre-producción o producción. Durante esta guía trabajaremos con un tarball simplificado de Hadoop, creado y hosteado por Pragsis, el cual se puede obtener de la web aquí.

 

Requisitos

Para poder utilizar nuestro tarball correctamente, los siguientes requisitos deben cumplirse:

  • El sistema debe tener instalado Java 1.6, preferiblemente de Oracle.
  • El entorno debe ser Linux
  • El usuario que ejecute todos los comandos debe ser root
  • El home de Java debe estar en /usr/java/latest

En mi máquina, la salida de ls /usr/java/latest es:

root@pctyrion18 ~ # ls /usr/java/latest
ASSEMBLY_EXCEPTION bin docs include jre lib man src.zip THIRD_PARTY_README

Instalación de Hadoop

Descargar el tarball en /opt, colocarse en esta carpeta y ejecutar:

tar xjf hadoop-pragsis.tar.bz2 
hadoop-1.0.4/bin/hadoop namenode -format
rm -f /opt/hadoop-pragsis.tar.bz2

Aranque y parada

Una vez ejecutados estos comandos, si todo fue bien, tendremos instalado y listo para arrancar una instalación pseudo-distribuida de Hadoop. Para iniciar los demonios de Hadoop,usamos los scripts start-all.sh y stop-all.sh de la carpeta /opt/hadoop-1.0.4/bin.

Para arrancar, ejecutamos:

root@pctyrion18 ~ # /opt/hadoop-1.0.4/bin/start-all.sh

Y para detener los demonios:

root@pctyrion18 ~ # /opt/hadoop-1.0.4/bin/stop-all.sh

Pruebas

Una vez que tenemos todo corriendo, vamos a comprobar que está funcionando. Para ello, tenemos dos interfaces web: una nos muestra información sobre MapReduce, y la otra, sobre HDFS. Los enlaces a dichas interfaces son:

Resulta interesante visitar dichos enlances, pues si ambos funcionan (es decir, no dan error 404), significa que nuestra instalación funciona correctamente.

Además, podemos comprobar mediante el comando jps (incluido en el JDK de Oracle) que tenemos los cinco demonios de Hadoop corriendo:

root@pctyrion18 hadoop-1.0.4 # jps
6020 TaskTracker
5753 DataNode
8485 Jps
5848 SecondaryNameNode
5943 JobTracker
5683 NameNode

En la salida de ese comando, debemos encontrar los dos demonios de MapReduce: TaskTracker y JobTracker; y los tres demonios de HDFS: DataNodeNameNode y SecondaryNameNode.

A continucación, la prueba que vamos a realizar consiste en copiar la carpeta conf (carpeta de configuración de Hadoop) al sistema de ficheros distribuido de Hadoop (HDFS) y luego ejecutar una tarea tipo "grep":

root@pctyrion18 hadoop-1.0.4 # cd /opt/hadoop-1.0.4 
root@pctyrion18 hadoop-1.0.4 # bin/hadoop fs -put conf input 
root@pctyrion18 hadoop-1.0.4 # bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
root@pctyrion18 hadoop-1.0.4 # bin/hadoop fs -cat output/*
1 dfs.block.size
1 dfs.data.dir
1 dfs.name.dir
1 dfs.permissions
1 dfs.replication
1 dfs.safemode.extension
1 dfs.server.namenode.
1 dfsadmin
cat: File does not exist: /user/root/output/_logs

Una vez hecho esto, la salida nos muestra la cadena que cumple con el criterio de la expresión regular 'dfs[a-z.]+' y el número de coincidencias iguales. 

Tags: