Hadoop - Configuración Entorno


Anuncios


Hadoop es compatible con GNU/Linux plataforma y sus sabores. Por lo tanto, tenemos que instalar un sistema operativo Linux para configurar Hadoop medio ambiente. En el caso de que usted tenga un SO que no sea Linux, se puede instalar un software en el Virtualbox y Linux dentro del Virtualbox.

De la configuración previa a la instalación

Antes de instalar Hadoop en el entorno de Linux, tenemos que configurar Linux usando ssh (Secure Shell). Siga los pasos que se indican a continuación para configurar el entorno de Linux.

Creación de un usuario

Al principio, se recomienda crear un usuario aparte para Hadoop para aislar Hadoop sistema de archivos del sistema de archivos de Unix. Siga los pasos que se indican a continuación para crear un usuario:

  • Abra el usuario root utilizando el comando "su".
  • Crear un usuario de la cuenta de root con el comando "useradd usuario".
  • Ahora puede abrir una cuenta de usuario existente mediante el comando "su nombre".

Abrir el terminal de Linux y escriba los siguientes comandos para crear un usuario.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd 

Configuración SSH y la generación de claves

Es necesario realizar una configuración SSH para realizar diferentes operaciones en un clúster como la de iniciar, detener distributed daemon shell las operaciones. Para autenticar usuarios diferentes de Hadoop, es necesaria para proporcionar par de claves pública/privada para un usuario Hadoop y compartirla con los usuarios.

Los siguientes comandos se utilizan para la generación de un par de clave y valor mediante SSH. Copiar las claves públicas forma id_rsa.pub a authorized_keys, y proporcionar el titular, con permisos de lectura y escritura al archivo authorized_keys, respectivamente.

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

Instalación de Java

Java es el principal requisito previo para Hadoop. En primer lugar, debe comprobar la existencia de java en el sistema con el comando "java -version". La sintaxis de java versión comando es dada a continuación.

$ java -version 

Si todo está en orden, se 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 continuación, siga los pasos que se indican a continuación para instalar java.

Paso 1

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

A continuación, 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 el jdk-7u71-linux-x64.gz usando 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 ubicación “/usr/local/”. Abrir root, y escriba los siguientes comandos.

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

Paso 4

Para la configuración 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.

Descargar Hadoop

Descargar y extraer Hadoop 2.4.1 de Apache software foundation usando los siguientes comandos.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit 

Hadoop Modos de funcionamiento

Una vez que hayas descargado Hadoop, puede utilizar el Hadoop cluster en uno de los tres modos admitidos:

  • Local/Modo autónomo: Después de descargar Hadoop en su sistema, por defecto, se configura en modo independiente se puede ejecutar como un solo proceso java.

  • Pseudo Modo Distribuido: es una simulación distribuida en una sola máquina. Cada demonio como Hadoop hdfs, hilados, MapReduce, etc. , se ejecute como un proceso java independiente. Este modo es útil para el desarrollo.

  • Modo Totalmente Distribuida : Este modo es completamente distribuida con un mínimo de dos o más máquinas como un clúster. Ya hablaremos de este modo en detalle en los próximos capítulos.

Instalar Hadoop en modo autónomo

Vamos a discutir la instalación de Hadoop 2.4.1 en modo autónomo.

No hay demonios y todo se ejecuta en una sola. Modo autónomo es apto para correr programas MapReduce durante el desarrollo, ya que es fácil de probar y depurar el sistema.

Configuración de Hadoop

Puede establecer las variables de entorno Hadoop anexar los siguientes comandos para~/.bashrcarchivo.

export HADOOP_HOME=/usr/local/hadoop 

Antes de seguir adelante, usted necesita asegurarse de que Hadoop está trabajando bien. Sólo hay que utilizar el comando siguiente:

$ hadoop version 

Si todo está bien con su configuración, a continuación, usted debe ver el siguiente resultado:

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4 

Hadoop significa que tu configuración de modo independiente está trabajando bien. De forma predeterminada, Hadoop está configurado para que se ejecute en un modo distribuido en una sola máquina.

Ejemplo

Veamos un ejemplo sencillo de Hadoop. Hadoop instalación proporciona el siguiente ejemplo MapReduce archivo jar, que proporciona la funcionalidad básica de MapReduce y puede utilizarse para calcular, como valor de PI, recuento de palabras en una determinada lista de archivos, etc.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar 

Vamos a tener un directorio de entrada donde vamos a empujar unos cuantos archivos y nuestra obligación es contar el número total de palabras en los archivos. Para calcular el número total de palabras, no es necesario escribir nuestro MapReduce, siempre el archivo .jar contiene la implementación de recuento de palabras. Puede intentar otros ejemplos en los que se usa el mismo archivo .jar, simplemente ejecute los siguientes comandos para comprobar apoya los programas funcionales de MapReduce hadoop mapreduce de ejemplos-2.2.0 .jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar 

Paso 1

Crear contenido temporal archivos en el directorio de entrada. Puede crear este directorio de entrada en cualquier lugar en el que les gustaría trabajar.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input 

Le dará los siguientes archivos en el directorio de entrada:

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt 

Estos archivos se han copiado del Hadoop instalación directorio de inicio. Para el experimento, que puede tener diferentes y grandes conjuntos de archivos.

Paso 2

Vamos a comenzar el proceso Hadoop para contar el número total de palabras en todos los archivos disponibles en el directorio de entrada, de la siguiente manera:

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input ouput 

Paso 3

Paso-2 hará el procesamiento necesario y guardar el resultado de la producción/parte-r00000 archivo, que se puede comprobar mediante:

$cat output/* 

Para ver una lista de todas las palabras junto con su número total disponible en todos los archivos disponibles en el directorio de entrada.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Instalar Hadoop en Pseudo modo distribuido

Siga los pasos que se indican a continuación para instalar Hadoop 2.4.1 en pseudo modo distribuido.

Paso 1: Configuración de Hadoop

Puede establecer las variables de entorno Hadoop anexar los siguientes comandos para~/.bashrc archivo.

export HADOOP_HOME=/usr/local/hadoop 
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 
export HADOOP_INSTALL=$HADOOP_HOME 

Ahora se aplican todos los cambios en el sistema actual.

$ source ~/.bashrc 

Paso 2: Hadoop Configuración

Usted puede encontrar todos los archivos de configuración Hadoop en la ubicación “$HADOOP_HOME/etc/hadoop”. Es necesario realizar cambios en los archivos de configuración según su Hadoop infraestructura.

$ Cd $HADOOP_HOME/etc/hadoop

Con el fin de desarrollar programas en java Hadoop, tiene que restablecer los java variables de entorno en hadoop-env.sh archivo JAVA_HOME valor de sustitución con la ubicación de java en su sistema.

export JAVA_HOME=/usr/local/jdk1.7.0_71

La siguiente es una lista de los archivos que tienes que modificar para configurar Hadoop.

Core-site.xml

Elcore-site.xmlcontiene información como el número de puerto que se usa para Hadoop ejemplo, memoria asignada para el sistema de archivos, límite de memoria para almacenar los datos, y el tamaño de lectura/escritura.

Abrir el core-site.xml y agregar las siguientes propiedades en entre <configuration>, </configuration> etiquetas.

<configuration>

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

hdfs-site.xml

Lahdfs-site.xmlcontiene información como el valor de los datos de réplica, namenode ruta y datanode las rutas de acceso de los sistemas de archivos locales. Esto significa que el lugar donde se desea almacenar el Hadoop infraestructura.

Supongamos los siguientes datos.

dfs.replication (data replication value) = 1 
(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode 

Abra este archivo y agregar las siguientes propiedades en entre el <configuration> </configuration> en el archivo.

<configuration>

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

Nota: En el archivo anterior, todos los valores de la propiedad son definidos por el usuario y puede realizar cambios en función de su infraestructura Hadoop.

yarn-site.xml

Este archivo se utiliza para configurar yarn en Hadoop. Abra el archivo yarn-site.xml y añadir las siguientes propiedades de entre el <configuration>, </configuration> en el archivo.

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

mapred-site.xml

Este archivo se utiliza para especificar qué MapReduce framework que estamos usando. De forma predeterminada, Hadoop contiene una plantilla de yarn-site.xml. En primer lugar, es necesario copiar el archivo desdemapred-site,xml.template a mapred-site.xmlcon el siguiente comando.

$ cp mapred-site.xml.template mapred-site.xml 

Mapred Abierto de sitio.xml y agregar las siguientes propiedades en entre el <configuración>, < /configuration> etiquetas en este archivo.

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

Hadoop Instalación Verificación

Los siguientes pasos se utilizan para verificar la instalación Hadoop.

Paso 1: Instalación del nodo Nombre

Configurar el namenode usando el comando "hdfs namenode -format" de la siguiente manera.

$ cd ~ 
$ hdfs namenode -format 

El resultado esperado es la siguiente.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Paso 2: Comprobar Hadoop dfs

El siguiente comando se utiliza para iniciar sle. Al ejecutar este comando, se iniciará la Hadoop sistema de archivos.

$ start-dfs.sh 

El resultado esperado es la siguiente:

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Paso 3: Comprobación de Script yarn

El siguiente comando se utiliza para iniciar el yarn script. Al ejecutar este comando se inicie el yarn demonios.

$ start-yarn.sh 

El resultado esperado de la siguiente manera:

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out 

Paso 4: Acceder a Hadoop en el navegador

El número de puerto predeterminado para acceder a Hadoop es 50070. Utilice la siguiente dirección url para obtener Hadoop servicios en el navegador.

http://localhost:50070/
Accessing Hadoop on Browser

Paso 5: Verifique que todas las solicitudes de clúster

El número de puerto predeterminado para acceder a todas las aplicaciones de clúster es 8088. Utilice la siguiente dirección url para visitar este servicio.

http://localhost:8088/
Hadoop Application Cluster

Advertisements