Instalar Hadoop 2.6 en Linux (un solo nodo)

agosto 31, 2016
admin

La versión de Hadoop 2.6 mejoro mucho respecto a las versiones anteriores, esta versión mejoro dramáticamente el HDFS y el MapReduce. esta guía esta hecha para ayudarte a instalar Hadoop 2.6 en CenOS/RHEL 7/6/5 y Oracle Linux.

Si estas aqui, es por que tienes interés en mejorar tus conocimientos de BigData y leíste en algún lado que Hadoop es el primer paso y en ves de buscar cursos buscas guias para poder practicar por tu propia cuenta, Bien hecho, es la decision correcta

Este articulo no incluye la instalación general del sistema operativo o del Java, solo es la configuración mas básica para poder iniciar.

hadoop-logo

Para llevar a cabo esta guía, es necesario que tengas una instalación ya terminada de tu sistema operativo Linux, por bien realizada me refiero a que ya esta instalada con todas las dependencias necesarias, Java 1.8 instalado, la IP asignada como estática, tu ip estática declarada en /etc/hosts, firewall desactivado, SELINUX desactivado y si estas en una maquina virtual, el virtual guest addons completamente instalados sin ningún error, de no tenerlo todo o no estar seguro, haré otros posts al respecto y los vinculare en las siguientes ligas:

Instalando Java 8 en CenOS/RHEL 7/6/5 y Oracle Linux

Instalando una maquina virtual correctamente con CentOS/RHEL 7/6/5 y Oracle Linux

Solucionar problema de instalación de virtual guest addons en VMWare con CenOS/RHEL 7/6/5 y Oracle Linux

Paso 1: Instalación de JAVA

Java es el principal requerimiento para ejecutar hadoop en cualquier sistema, asi que asegúrate que lo tienes correctamente instalado con el comando java -version

# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

de no aparecer de esta manera, necesitas ir a la liga de instalacion que comente mas arriba.

 

Paso 2: crear el usuario de Hadoop

Recomiendo crear un usuario normal (no root) para que funcione Hadoop. asi que crea una cuenta de sistema con los siguientes comandos

# adduser hadoop
# passwd hadoop

Una ves creado el usuario, switcheamos al usuario hadoop, para continuar trabajando, con el comando

# su - hadoop

después de crear la cuenta, le asignas una contraseña de tu elección, al terminar de hacer esto, es necesario que crees una llave ssh, para permitir que el servidor se pueda conectar consigo mismo a través de una sesión de ssh

# su - hadoop
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

al hacer esto, verificamos que se hayan creado adecuadamente las llaves anteriores, si es la primera ves que escribimos este comando, nos hara una pregunta el sistema operativo, le escribimos YES

$ ssh localhost
$ exit

(nota: si le pusimos un nombre a nuestro servidor, por decir TESTPROD o algo asi, reemplazamos la palabra localhost, por ej. ssh TESTPROD)

Paso 3: Descargamos Hadoop 2.6.0

Ahora descargamos Hadoop de la pagina de apache, si esta muy lento, podemos probar algun mirror que sea mas rápido en el momento, en esta secuencia de comandos, lo descargamos desde la linea de comando, luego lo descomprimimos con el comando tar y luego se genera una carpeta llamada hadoop-2.6.0 esa la renombramos a simplemente hadoop

$ cd ~
$ wget http://apache.claz.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
$ tar xzf hadoop-2.6.0.tar.gz
$ mv hadoop-2.6.0 hadoop

Paso 4: configurar el modo pseudo-distribuido en Hadoop

4.1  Configurar y setear las variables de ambiente

para hacer esto, nos vamos al directorio base de nuestro usuario hadoop, (por lo general es /home/hadoop) despues editamos el archivo .bashr

bash profile configurado para Hadoop

El archivo .bash_profile debe de quedar algo asi

c o .bash_profile o .profile esto depende de la distribución que tengamos instalada, para editar los archivos usamos nano o vi , segun los gustos de cada quien, al final del archivo, agregamos:

export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

después de eso, aplicamos los cambios en el perfil de nuestro usuario activo, eso se puede hacer, saliendo y volviendo a entrar al usuario hadoop o con el comando source

source .bashrc

Ahora editamos el archivo $HADOOP_HOME/hadoop/hadoop-env.sh y ponemos fija la variable del JAVA_HOME.

dentro del archivo anterior buscamos la linea que comience con export JAVA_HOME y la reemplazamos por:

export JAVA_HOME=/opt/jdk1.8.0_66/

donde /opt/jdk.. sea la dirección donde esta nuestra instalación de JAVA

4.2 Edita el archivo de configuración de la aplicación de Hadoop

Hadoop tiene muchos archivos de configuración diferentes, los cuales se necesitan configurar según los requerimientos de tu infraestructura, esta configuración es especifica para una implementacion de un solo nodo, primero nos cambiamos a la siguiente carpeta:

$ cd $HADOOP_HOME/etc/hadoop

dentro de esta carpeta editamos el archivo core-site.xml , donde ponemos lo siguiente (nota, el tag de configuration no debe de repetirse):

core-site

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

 

Editamos el archivo hdfs-site.xml

hdf-site

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>

Editamos mapred-site.xml

mapred-site

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

Editamos yarn-site.xml

yarn-site

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

4.3 Formateamos con Namenode

Ahora formateamos el namenode usando los siguientes comando, asegúrate donde se encuentra el directorio de almacenamiento en la salida del comando

$ hdfs namenode -format

si todo sale bien, en este comando te despliega una linea que dice Storage directory, allí es donde va a guardar tu información

Paso 5: Iniciamos el cluster de Hadoop

Ya vamos a iniciar el cluster utilizando los scripts que vienen dentro de la carpeta de hadoop, todos estos scripts se encuentran dentro del directorio sbin, necesitamos entrar allí y ejecutarlos todos de uno por uno, en este mismo orden, si marca algún error, verifica que todos los pasos anteriores se hayan hecho bien.

cd $HADOOP_HOME/sbin/

ahora ejecutamos start-dfs.sh

$ start-dfs.sh

dfs

Ahora ejecutamos start-yarn.sh

start-yarn.sh

yarn

Paso 6: accedamos a los servicios de Hadoop desde un navegador.

Los servicios de Hadoop Namenode por defecto se inician en el puerto 50070. asi que accede a tu servidor hacia ese puerto, puede ser desde dentro de la maquina física como localhost, o si estas en una maquina virtual, desde tu maquina Host poniendo la ip del servidor en ves de localhost

http://localhost:50070/

50070

 

Ahora accedamos al puerto 8088 para obtener información sobre el cluster y todas las aplicaciones

http://localhost:8088/

8088

 

Accedamos al puerto 50090 para obtener información sobre el namenode secundario

 

http://localhost:50090/

50090

 

Accedamos al puerto 50075 para obtener datos del datanode principal

http://localhost:50075/

50075

 

Paso 7: probemos Hadoop como nodo sencillo

7.1 Creemos los directorios HDFS necesarios para los siguientes comando

entramos a la carpeta $HADOOP_HOME/bin/ , desde aqui ejecutamos los siguientes comando, para crear las carpetas dentro del storage de HADOOP, esto se hace con el comando hdfs

$ ./hdfs dfs -mkdir /user
$ ./hdfs dfs -mkdir /user/hadoop

7.2 ahora a manera de ejemplo copiamos algún conjunto de archivos de texto dentro de las carpetas del storage HDFS
que acabamos de crear, para cuestiones de ejemplo, copiare los logs del servidor web, pero puedes meter los archivos que quieras, recuerda que estos archivos son los que serán o pueden ser analizados por medio del big data, así que lo ideal seria un compendio de muchísima información en texto plano.

$ hdfs dfs -put /var/log/httpd logs

7.3 ahora entramos con el navegador y ver el filesystem distribuido con la siguiente liga:

http://localhost:50070/explorer.html#/user/hadoop/logs

explora

 

7.4 si quisiéramos hacer lo opuesto y extraer datos del HDFS es con el comando

$ ./hdfs dfs -get logs /tmp/logs
$ ls -l /tmp/logs/

 

LISTO!, si acabaste exitosamente esta guía y no te quedaron claros algunos términos, necesitas leer nuestra pagina de explicación de big data, haciendo click aquí

 

Si todo quedo entendido, sigue la parte interesante y hacer funcionar el big data, puedes seguir este tutorial para utilizar el MapReduce y el WordCount

hadoop

Related Posts

No comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *