Saltar navegación

Uso básico del cluster

Inicio de Hadoop

Tres partes:

  1. Preparar el HDFS
  2. Iniciar los demonios de Hadoop
  3. Preparación de los directorios de los usuarios

Preparación del HDFS

  • Conéctate por ssh a la MV que hace el papel de NameNode/ResourceManager
  • Conviértete en el usuario hdmaster (sudo su - hdmaster)
  • Como usuario hdmaster, inicia el HDFS ejecutando, en el Namenode:

               $ hdfs namenode -format

          Al finalizar debería indicar: "INFO common.Storage: Storage directory /var/data/hadoop/hdfs/nn has been successfully formatted."

 

Inicio de los demonios

  • En el NameNode/ResourceManager, como usuario hdmaster, inicia los demonio del HDFS y YARN ejecutando:

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start namenode
$ $HADOOP_PREFIX/sbin/yarn-daemon.sh start resourcemanager

Comprueba los ficheros de log en el directorio /var/log/hadoop del NameNode, para comprobar errores.

  • Conéctate a la MV que hace el papel de DataNode1/NodeManager/CheckPointNode y (como usuario hdmaster) lanza los demonios correspondientes:

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start datanode
$ $HADOOP_PREFIX/sbin/yarn-daemon.sh start nodemanager
$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start secondarynamenode

  • Conéctate a la MV que hace el papel de DataNode2/NodeManagerJobHistoryServer y (como usuario hdmaster) lanza los demonios correspondientes:

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start datanode
$ $HADOOP_PREFIX/sbin/yarn-daemon.sh start nodemanager
$ $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh start historyserver

  • A través de esos interfazes, comprueba que todo está funcionando como debiera.

 

  • IMPORTANTE: Desde la Wireless Eduroam, no vamos a tener acceso a estos puertos. Para poder acceder, puedes usar la siguiente solución:
    • Abre en tu PC un proxy SOCKS al NameNode ejecutando el siguiente comando:
              ssh -f -N -D localhost:1080 root@namenode
      En tu navegador web, accede a las propiedades de red y especifica como proxy un servidor SOCKS v5, localhost puerto 1080, como se ve en la figura

      Configuración del proxy

      Cuando termines, recuerda quitar esta configuración del navegador.

Otra forma de iniciar los demonios en los DataNodes/NodeManagers

Se pueden iniciar los demonios de los DataNodes/NodeManagers directamente desde el NameNode:

  • En el fichero $HADOOP_PREFIX/etc/hadoop/slaves borra localhost y pon las IPs de los dos DataNodes/NodeManagers (una IP por línea).
  • También desde el NameNode, inicia el demonio del HDFS y YARN en los DataNodes/nodemanagers (fijate en la s final de los comandos)

$ $HADOOP_PREFIX/sbin/hadoop-daemons.sh start datanode
$ $HADOOP_PREFIX/sbin/yarn-daemons.sh start nodemanager

Parada de los demonios

El proceso de parar los demonios es el inverso del seguido para iniciarlos, cambiando start por stop. (No los pares de momento, a menos que tengas que apagar las máquinas. Para evitar problemas, siempre que detengas las máquinas detén los demonios antes).

Prueba de un ejemplo

Como test de nuestra instalación, podemos ejecutar un ejemplo de MapReduce:

  • Desde el NameNode, como usuario hdmaster, ejecuta lo siguiente

$ export YARN_EXAMPLES=$HADOOP_PREFIX/share/hadoop/mapreduce
$ yarn jar $YARN_EXAMPLES/hadoop-mapreduce-examples-2.7.*.jar pi 4 10

Mientras se ejecuta, comprueba en el interfaz web de YARN la evolución. Al terminar, comprueba que se ha guardado información de la ejecución en el JobHistory server.

Uso como usuario no privilegiado

En el NameNode utiliza adduser para crear un nuevo usuario no privilegiado. Dadle el nombre que quieras.

  • adduser tomas

Creación de los directorios del nuevo usuario en HDFS

  • En el NameNode, como usuario hdmaster, crea un directorio en HDFS (dentro de /user) para que este nuevo usuario pueda utilizarlo
$ hdfs dfs -mkdir -p /user/tomas
$ hdfs dfs -chown tomas /user/tomas
$ hdfs dfs -ls /user/tomas
  • Debemos dar los permisos adecuados en /tmp del HDFS para que el usuario pueda lanzar aplicaciones MapReduce

     $ hdfs dfs -chmod -R 1777 /tmp

 Prueba como usuario no privilegiado (no hdmaster)

  • En el Namenode, como usuario normal (no hdmaster), añade al .bashrc las siguientes líneas

            export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
            export HADOOP_PREFIX=/opt/bd/hadoop
            export PATH=$PATH:$HADOOP_PREFIX/bin

  • Ejecuta el .bashrc (. ~/.bashrc) y comprueba que puedes acceder al HDFS ejecutando

            hdfs dfs -ls
   
Este comando no debería dar ninguna salida (ya que el usuario no tiene ningún fichero), ni ningún mensaje de error

 

Descargar ficheros de prueba

1. En el NameNode, como usuario normal (no hdmaster) descarga el fichero con los datos de ejemplo que usaremos en esta práctica

            $ wget https://tinyurl.com/TCDM-libros 

2. En el NameNode, como usuario normal (no hdmaster) destarea el fichero TCDM-libros y copia los datos al HDFS con:

$ hdfs dfs -put libros .

3. Comprueba que se han copiado:

$ hdfs dfs -ls libros

 4. Mediante el interfaz web, analizad donde se han copiado y replicado los ficheros. Comprueba que cada fichero tiene 2 réplicas y ved los bloques en los que se ha dividido el fichero grande. 

  •  Abrid un navegador y conectarse a namenode:50070
  • Id al menu "Utilities" -> "Browse the filesystem"

Licenciado baixo a GNU Free Documentation License (Versión local)