Hadoop - Varios nodos de clster



Este captulo se explica la configuracin del clster de varios nodos Hadoop en un entorno distribuido.

Como todo el conjunto no puede ser demostrado, estamos explicando la Hadoop cluster medio ambiente utilizando tres sistemas (un maestro y dos esclavos); a continuacin, se presentan sus direcciones IP.

  • Hadoop Master: 192.168.1.15 (hadoop-master)
  • Hadoop Slave: 192.168.1.16 (hadoop-slave-1)
  • Hadoop Slave: 192.168.1.17 (hadoop-slave-2)

Siga los pasos que se indican a continuacin para que Hadoop clster de varios nodos.

Instalacin de Java

Java es el principal requisito previo para Hadoop. En primer lugar, debe comprobar la existencia de java en el sistema utilizando "java -version". La sintaxis de java versin comando es dada a continuacin.

$ java -version

Si todo funciona bien, le dar el siguiente resultado.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Si java no est instalado en el sistema, a continuacin, siga estos pasos para instalar java.

Paso 1

Descargar Java (JDK - X64.tar.gz) visitando el siguiente enlace http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

A continuacin, jdk-7u71-linux-x64.tar.gz se descargar en su sistema.

Paso 2

En general, encontrar el archivo descargado java en carpeta de descargas. Verificar y extraer eljdk-7u71-linux-x64.gzusando los siguientes comandos.

$ cd Downloads/
$ ls
jdk-7u71-Linux-x64.gz
$ tar zxf jdk-7u71-Linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-Linux-x64.gz

Paso 3

Para que java disponible para todos los usuarios, tiene que mover a la ubicacin /usr/local/. Abra el root, y escriba los siguientes comandos.

$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit

Paso 4

Para la configuracin de ruta de acceso y JAVA_HOME variables, agregar los siguientes comandos en el archivo~/.bashrc.

export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH=PATH:$JAVA_HOME/bin

Ahora compruebe que el java -version comando desde el terminal, como se explic anteriormente. Siga el proceso anterior e instalar java en todos los nodos del clster.

Creando una cuenta de usuario

Crear una cuenta de usuario del sistema en tanto el maestro como el esclavo sistemas Hadoop para utilizar la instalacin.

# useradd hadoop 
# passwd hadoop

La asignacin de nodos

Tiene que editar archivo hosts en /etc/ carpeta en todos los nodos, se especifica la direccin IP de cada sistema seguido por sus nombres de host.

# vi /etc/hosts
enter the following lines in the /etc/hosts file.
192.168.1.109 hadoop-master 
192.168.1.145 hadoop-slave-1 
192.168.56.1 hadoop-slave-2

Configuracin basada en una clave de acceso

Configuracin ssh en cada uno de los nodos, que pueden comunicarse entre s sin pedir contrasea.

# su hadoop 
$ ssh-keygen -t rsa 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub tutorialspoint@hadoop-master 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp1@hadoop-slave-1 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp2@hadoop-slave-2 
$ chmod 0600 ~/.ssh/authorized_keys 
$ exit

Instalar Hadoop

En el servidor maestro, descargue e instale Hadoop usando los siguientes comandos.

# mkdir /opt/hadoop 
# cd /opt/hadoop/ 
# wget http://apache.mesi.com.ar/hadoop/common/hadoop-1.2.1/hadoop-1.2.0.tar.gz 
# tar -xzf hadoop-1.2.0.tar.gz 
# mv hadoop-1.2.0 hadoop
# chown -R hadoop /opt/hadoop 
# cd /opt/hadoop/hadoop/

Configuracin Hadoop

Usted tendr que configurar Hadoop server, haciendo los siguientes cambios como se indica a continuacin.

core-site.xml

Abrir elcore-site.xmlarchivo y editar, como se muestra a continuacin.

<configuration>
   <property> 
      <name>fs.default.name</name> 
      <value>hdfs://hadoop-master:9000/</value> 
   </property> 
   <property> 
      <name>dfs.permissions</name> 
      <value>false</value> 
   </property> 
</configuration>

hdfs-site.xml

Abra lahdfs-site.xmly editar como se muestra a continuacin.

<configuration>
   <property> 
      <name>dfs.data.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name/data</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.name.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.replication</name> 
      <value>1</value> 
   </property> 
</configuration>

mapred-site.xml

mapred-site.xmlarchivo xml y editar tal y como se muestra a continuacin.

<configuration>
   <property> 
      <name>mapred.job.tracker</name> 
      <value>hadoop-master:9001</value> 
   </property> 
</configuration>

hadoop-env.sh

Abra elhadoop-env.sharchivo y editar JAVA_HOME, HADOOP_CONF_DIR y HADOOP_OPTS como se muestra a continuacin.

Nota: Ajuste el JAVA_HOME como por la configuracin del sistema.

export JAVA_HOME=/opt/jdk1.7.0_17 export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true export HADOOP_CONF_DIR=/opt/hadoop/hadoop/conf

Instalacin de servidores esclavos Hadoop

Instalar Hadoop en todos los servidores esclavos siguiendo el recibir rdenes.

# su hadoop 
$ cd /opt/hadoop 
$ scp -r hadoop hadoop-slave-1:/opt/hadoop 
$ scp -r hadoop hadoop-slave-2:/opt/hadoop

Hadoop Configuracin en el servidor maestro

Abra el servidor maestro y configurar siguiendo el recibir rdenes.

# su hadoop 
$ cd /opt/hadoop/hadoop

Configurar Nodo maestro

$ vi etc/hadoop/masters
hadoop-master

Configurar Nodo secundario

$ vi etc/hadoop/slaves
hadoop-slave-1 
hadoop-slave-2

Nombre de formato nodo maestro sobre Hadoop

# su hadoop 
$ cd /opt/hadoop/hadoop 
$ bin/hadoop namenode format
11/10/14 10:58:07 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = hadoop-master/192.168.1.109 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 1.2.0 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1479473; compiled by 'hortonfo' on Mon May 6 06:59:37 UTC 2013 
STARTUP_MSG: java = 1.7.0_71 ************************************************************/ 11/10/14 10:58:08 INFO util.GSet: Computing capacity for map BlocksMap editlog=/opt/hadoop/hadoop/dfs/name/current/edits
.
.
. 11/10/14 10:58:08 INFO common.Storage: Storage directory /opt/hadoop/hadoop/dfs/name has been successfully formatted. 11/10/14 10:58:08 INFO namenode.NameNode: 
SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop-master/192.168.1.15 ************************************************************/

Hadoop Inicio Servicios

El comando siguiente es para iniciar todas las Hadoop servicios en el Hadoop-Master.

$ cd $HADOOP_HOME/sbin
$ start-all.sh

Agregar un nuevo DataNode en el Hadoop Cluster

A continuacin, se presentan los pasos a seguir para agregar nuevos nodos a un clster Hadoop.

Redes

Agregar nuevos nodos a un clster Hadoop existente con las correspondientes de la red. Asumir la siguiente configuracin de red.

Para la nueva configuracin de nodo:

IP address : 192.168.1.103 
netmask : 255.255.255.0
hostname : slave3.in

Agregar el usuario y acceso SSH

Agregar un usuario

En un nodo nuevo, agregue "hadoop" usuario y contrasea de Hadoop usuario "hadoop123" o cualquier cosa que quiera con los siguientes comandos.

useradd hadoop
passwd hadoop

Contrasea de configuracin menor conectividad desde el maestro al nuevo esclavo.

Ejecute el siguiente en el master

mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh 
ssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsa 
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys
Copy the public key to new slave node in hadoop user $HOME directory
scp $HOME/.ssh/id_rsa.pub hadoop@192.168.1.103:/home/hadoop/

Ejecute el siguiente de los esclavos

Iniciar sesin en hadoop. Si no es as, inicie sesin en hadoop usuario.

su hadoop ssh -X hadoop@192.168.1.103

Copiar el contenido de clave pblica en un archivo "$HOME/.ssh/authorized_keys" y, a continuacin, cambiar el permiso del mismo ejecutando el siguiente comando.

cd $HOME
mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh
cat id_rsa.pub >>$HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys

Verificar ssh login en la mquina maestra. Ahora compruebe si puede ssh al nuevo nodo sin una contrasea del maestro.

ssh hadoop@192.168.1.103 or hadoop@slave3

Configurar nombre de host del nodo nuevo

Puede configurar nombre de host en el archivo/etc/sysconfig/network

On new slave3 machine
NETWORKING=yes 
HOSTNAME=slave3.in

Para que los cambios surtan efecto, reinicie el equipo o comando hostname a un nuevo equipo con el respectivo nombre de reiniciar es una buena opcin).

El esclavo3 equipo de nodo:

hostname slave3.in

Actualizar el archivo /etc/hostsen todas las mquinas del clster con las lneas siguientes:

192.168.1.102 slave3.in slave3

Ahora, intente hacer ping a la mquina con nombres de host para comprobar si se est resolviendo en IP o no.

En el nuevo equipo de nodo:

ping master.in

Iniciar el DataNode en Nuevo Nodo

Iniciar el demonio datanode manualmente mediante $HADOOP_HOME/bin/hadoop-daemon.sh script. Y automticamente se contacto con el maestro (NameNode) y unirse al clster. Tambin debemos aadir el nuevo nodo al archivo conf/esclavos en el servidor maestro. La secuencia de comandos se reconocer el nuevo nodo.

Iniciar sesin en nuevo nodo

su hadoop or ssh -X hadoop@192.168.1.103

Inicio HDFS en un nodo secundario recin agregado mediante el siguiente comando

./bin/hadoop-daemon.sh start datanode

La salida de jps comando en un nodo nuevo. Se ve de la siguiente manera.

$ jps
7141 DataNode
10312 Jps

Extraccin de un DataNode del Hadoop Cluster

Podemos eliminar un nodo de un clster sobre la marcha, mientras se est ejecutando, sin ninguna prdida de datos. HDFS caracterstica proporciona una clausura, el cual asegura que eliminar un nodo se lleva a cabo en forma segura. Para utilizar esta funcin, siga los pasos que aparecen a continuacin:

Paso 1: Iniciar sesin en master

Iniciar sesin en master usuario de la mquina donde Hadoop est instalado.

$ su hadoop

Paso 2: Cambiar configuracin de clster

El excluir archivo debe estar configurado antes de iniciar el clster. Agregar una clave con nombre dfs.hosts.excluir a nuestro $HADOOP_HOME/etc/hadoop/hdfs-site.xml. El valor asociado a la clave ofrece la ruta de acceso completa a un archivo en el NameNode local del sistema de archivos que contiene una lista de las mquinas que no estn autorizados a conectarse a HDFS.

Por ejemplo, agregar las siguientes lneas al etc/hadoop/hdfs sitio.xml.

<property> 
   <name>dfs.hosts.exclude</name> 
   <value>/home/hadoop/hadoop-1.2.1/hdfs_exclude.txt</value> 
   <description>DFS exclude</description> 
</property>

Paso 3: Determinar los hosts para retirar

Cada una de las mquinas que se van a desmantelar se debe agregar en el archivo identificado por el hdfs_exclude.txt, uno de los nombres de dominio por lnea. De esta manera se impedir que conecta a la NameNode. El contenido del"/home/hadoop/hadoop-1.2.1/hdfs_exclude.txt"archivo se muestra a continuacin, si desea eliminar DataNode2.

slave2.in

Paso 4: Fuerza a cargar configuracin

Ejecute el comando"$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes"sin las comillas.

$ $HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes

Esto har que el NameNode volver a leer la configuracin, incluyendo el recientemente actualizado "excluye" archivo. Se retira los nodos en un perodo de tiempo, lo que permite tiempo para cada uno de los nodos de bloques que se replican en las mquinas que estn programadas para permanecer activo.

Enslave2.in, verificar la jps salida de comando. Despus de algn tiempo, se ver el proceso DataNode se desconecta automticamente.

Paso 5: Apagar los nodos

Despus de que el proceso de retirada se ha completado, el hardware puede ser retirada con seguridad cerrado por mantenimiento. Ejecute el comando de informe a dfsadmin para comprobar el estado de retirada. El siguiente comando se describen el estado de los nodos y retirar los nodos conectados al panel de instrumentos.

$ $HADOOP_HOME/bin/hadoop dfsadmin -report

Paso 6: Editar excluye archivo de nuevo

Una vez que las mquinas han sido clausuradas, se pueden retirar de la "excluye" archivo. Ejecucin de"$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes" nuevo a leer la excluye de nuevo en el NameNode; lo que permite que el DataNodes volver a unirse a un grupo despus de la conservacin se ha terminado, o se necesita ms capacidad en el clster nuevo, etc.

Nota especial: Si el proceso descrito anteriormente es seguido y el tasktracker proceso todava est en funcionamiento en el nodo, es necesario que se cierre. Una manera de hacerlo es para desconectar la mquina como lo hicimos en los pasos anteriores. El Maestro se reconocer el proceso automticamente y se declaran como muertos. No hay necesidad de seguir el mismo proceso para la extraccin de la tasktracker porque no es tan crucial como en comparacin con el DataNode. DataNode contiene los datos que desea quitar de forma segura sin ninguna prdida de datos.

La tasktracker se puede ejecutar/shutdown de la mosca con el siguiente comando en cualquier momento.

$ $HADOOP_HOME/bin/hadoop-daemon.sh stop tasktracker $HADOOP_HOME/bin/hadoop-daemon.sh start tasktracker
Advertisements