![La guía completa para el comando "useradd" en Linux](/f/6dc02c6d45f4be61a08cc48dec05c3e0.png?width=100&height=100)
Hadoop es un marco de programación de código abierto desarrollado por Apache para procesar big data. Usa HDFS (Sistema de archivos distribuido Hadoop) para almacenar los datos en todos los nodos de datos del clúster de manera distributiva y el modelo mapreduce para procesar los datos.
Namenode (NN) es un demonio maestro que controla HDFS y Jobtracker (JT) es el demonio maestro del motor mapreduce.
En este tutorial estoy usando dos CentOS 6.3 VM "Maestro' y 'nodo"A saber. (maestro y nodo son mis nombres de host). La IP "maestra" es 172.21.17.175 y la IP del nodo es "172.21.17.188‘. Las siguientes instrucciones también funcionan en RHEL/CentOS 6.x versiones.
[[correo electrónico protegido] ~] # nombre de host Maestro
[[correo electrónico protegido] ~] # ifconfig | grep 'inet addr' | head -1 inet addr:172.21.17.175 Bcast: 172.21.19.255 Máscara: 255.255.252.0
[[correo electrónico protegido] ~] # nombre de host nodo
[[correo electrónico protegido] ~] # ifconfig | grep 'inet addr' | head -1 inet addr:172.21.17.188 Bcast: 172.21.19.255 Máscara: 255.255.252.0
Primero, asegúrese de que todos los hosts del clúster estén en "/ Etc / hosts"Archivo (en cada nodo), si no tiene DNS configurado.
[[correo electrónico protegido] ~] # cat / etc / hosts 172.21.17.175 maestro. 172.21.17.188 nodo
[[correo electrónico protegido] ~] # cat / etc / hosts 172.21.17.197 qabox. 172.21.17.176 ansible-ground
Usamos oficial CDH repositorio para instalar CDH4 en todos los hosts (maestro y nodo) de un clúster.
Ir a oficial Descarga de CDH página y tome el CDH4 (es decir, 4.6) versión o puede utilizar la siguiente wget comando para descargar el repositorio e instalarlo.
# wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm. # yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm
# wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm. # yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
Antes de instalar Hadoop Multinode Cluster, agregue la clave pública GPG de Cloudera a su repositorio ejecutando uno de los siguientes comandos de acuerdo con la arquitectura de su sistema.
## en el sistema de 32 bits ## # rpm --import http://archive.cloudera.com/cdh4/redhat/6/i386/cdh/RPM-GPG-KEY-cloudera
## en el sistema de 64 bits ## # rpm --import http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
A continuación, ejecute el siguiente comando para instalar y configurar JobTracker y NameNode en el servidor maestro.
[[correo electrónico protegido] ~] # mmm limpiar todo [[correo electrónico protegido] ~] # yum instalar hadoop-0.20-mapreduce-jobtracker
[[correo electrónico protegido] ~] # mmm limpiar todo. [[correo electrónico protegido] ~] # yum instalar hadoop-hdfs-namenode
Nuevamente, ejecute los siguientes comandos en el servidor maestro para configurar el nodo de nombre secundario.
[[correo electrónico protegido] ~] # mmm limpiar todo [[correo electrónico protegido] ~] # yum instalar hadoop-hdfs-secundarianam
A continuación, configure el rastreador de tareas y el nodo de datos en todos los hosts del clúster (nodo) excepto los hosts JobTracker, NameNode y secundario (o en espera) NameNode (en el nodo en este caso).
[[correo electrónico protegido] ~] # mmm limpiar todo. [[correo electrónico protegido] ~] # yum instalar hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
Puede instalar el cliente Hadoop en una máquina separada (en este caso lo he instalado en el nodo de datos, puede instalarlo en cualquier máquina).
[[correo electrónico protegido] ~] # yum instalar hadoop-client
Ahora, si hemos terminado con los pasos anteriores, avancemos para implementar hdfs (que se realizará en todos los nodos).
Copie la configuración predeterminada a /etc/hadoop directorio (en cada nodo del clúster).
[[correo electrónico protegido] ~] # cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
[[correo electrónico protegido] ~] # cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
Utilizar alternativas comando para configurar su directorio personalizado, de la siguiente manera (en cada nodo del clúster).
[[correo electrónico protegido] ~] # alternativas --verbose --install / etc / hadoop / conf hadoop-conf /etc/hadoop/conf.my_cluster 50. leyendo / var / lib / alternativas / hadoop-conf [[correo electrónico protegido] ~] # alternativas --set hadoop-conf /etc/hadoop/conf.my_cluster
[[correo electrónico protegido] ~] # alternativas --verbose --install / etc / hadoop / conf hadoop-conf /etc/hadoop/conf.my_cluster 50. leyendo / var / lib / alternativas / hadoop-conf [[correo electrónico protegido] ~] # alternativas --set hadoop-conf /etc/hadoop/conf.my_cluster
Ahora abierto 'core-site.xml"Archivar y actualizar"fs.defaultFS”En cada nodo del clúster.
[[correo electrónico protegido] conf] # gato /etc/hadoop/conf/core-site.xml
1.0 texto / xslconfiguration.xsl fs.defaultFS hdfs: // maestro /
[[correo electrónico protegido] conf] # gato /etc/hadoop/conf/core-site.xml
1.0 texto / xslconfiguration.xsl fs.defaultFS hdfs: // maestro /
Próxima actualización "dfs.permissions.superusergroup" en hdfs-site.xml en cada nodo del clúster.
[[correo electrónico protegido] conf] # cat /etc/hadoop/conf/hdfs-site.xml
1.0 texto / xslconfiguration.xsl dfs.name.dir /var/lib/hadoop-hdfs/cache/hdfs/dfs/name dfs.permissions.superusergroup hadoop
[[correo electrónico protegido] conf] # cat /etc/hadoop/conf/hdfs-site.xml
1.0 texto / xslconfiguration.xsl dfs.name.dir /var/lib/hadoop-hdfs/cache/hdfs/dfs/name dfs.permissions.superusergroup hadoop
Nota: Asegúrese de que la configuración anterior esté presente en todos los nodos (hágalo en un nodo y ejecute scp para copiar en el resto de los nodos).
Actualice "dfs.name.dir o dfs.namenode.name.dir" en "hdfs-site.xml" en NameNode (en Master y Node). Cambie el valor resaltado.
[[correo electrónico protegido] conf] # cat /etc/hadoop/conf/hdfs-site.xml
dfs.namenode.name.dir archivo: /// data / 1 / dfs / nn, / nfsmount / dfs / nn
[[correo electrónico protegido] conf] # cat /etc/hadoop/conf/hdfs-site.xml
dfs.datanode.data.dir archivo: /// data / 1 / dfs / dn, / data / 2 / dfs / dn, / data / 3 / dfs / dn
Ejecute los siguientes comandos para crear una estructura de directorio y administrar los permisos de usuario en la máquina Namenode (Master) y Datanode (Node).
[[correo electrónico protegido]] # mkdir -p / data / 1 / dfs / nn / nfsmount / dfs / nn. [[correo electrónico protegido]] # chmod 700 / data / 1 / dfs / nn / nfsmount / dfs / nn
[[correo electrónico protegido]] # mkdir -p / data / 1 / dfs / dn / data / 2 / dfs / dn / data / 3 / dfs / dn / data / 4 / dfs / dn. [[correo electrónico protegido]] # chown -R hdfs: hdfs / data / 1 / dfs / nn / nfsmount / dfs / nn / data / 1 / dfs / dn / data / 2 / dfs / dn / data / 3 / dfs / dn / data / 4 / dfs / dn
Formatee el Namenode (en Master), emitiendo el siguiente comando.
[[correo electrónico protegido] conf] # sudo -u hdfs hdfs namenode -format
Agregue la siguiente propiedad al hdfs-site.xml archivo y reemplace el valor como se muestra en Master.
dfs.namenode.http-address 172.21.17.175:50070 La dirección y el puerto en el que escuchará la interfaz de usuario de NameNode.
Nota: En nuestro caso, el valor debe ser la dirección IP de la máquina virtual maestra.
Ahora implementemos MRv1 (Map-reduce versión 1). Abierto 'mapred-site.xml"Archivo siguiendo los valores como se muestra.
[[correo electrónico protegido] conf] # cp hdfs-site.xml mapred-site.xml. [[correo electrónico protegido] conf] # vi mapred-site.xml. [[correo electrónico protegido] conf] # cat mapred-site.xml
1.0 texto / xslconfiguration.xsl mapred.job.tracker maestro: 8021
A continuación, copie "mapred-site.xml"Archivo a la máquina del nodo usando el siguiente comando scp.
[[correo electrónico protegido]conf] # scp /etc/hadoop/conf/mapred-site.xml nodo: / etc / hadoop / conf / mapred-site.xml 100% 200 0,2 KB / s 00:00
Ahora configure los directorios de almacenamiento local para que los usen los demonios MRv1. Abrir de nuevo "mapred-site.xml'Y realice los cambios que se muestran a continuación para cada TaskTracker.
 mapred.local.dir Â/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local
Después de especificar estos directorios en el "mapred-site.xml"Archivo, debe crear los directorios y asignarles los permisos de archivo correctos en cada nodo de su clúster.
mkdir -p / data / 1 / mapred / local / data / 2 / mapred / local / data / 3 / mapred / local / data / 4 / mapred / local. chown -R mapeado: hadoop / data / 1 / mapeado / local / data / 2 / mapeado / local / data / 3 / mapeado / local / data / 4 / mapeado / local
Ahora ejecute el siguiente comando para iniciar HDFS en cada nodo del clúster.
[[correo electrónico protegido] conf] # para x en `cd /etc/init.d; ls hadoop-hdfs- * `; hacer sudo service $ x start; hecho
[[correo electrónico protegido] conf] # para x en `cd /etc/init.d; ls hadoop-hdfs- * `; hacer sudo service $ x start; hecho
Es necesario crear /tmp con los permisos adecuados exactamente como se menciona a continuación.
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -mkdir / tmp. [[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chmod -R 1777 / tmp
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -mkdir -p / var / lib / hadoop-hdfs / cache / mapred / mapred / staging. [[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chmod 1777 / var / lib / hadoop-hdfs / cache / mapred / mapred / staging. [[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chown -R mapeado / var / lib / hadoop-hdfs / cache / mapeado
Ahora verifique la estructura del archivo HDFS.
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -ls -R / drwxrwxrwt - hdfs hadoop 0 2014-05-29 09:58 / tmp. drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 / var. drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 / var / lib. drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 / var / lib / hadoop-hdfs. drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 / var / lib / hadoop-hdfs / cache. drwxr-xr-x - hadoop mapeado 0 2014-05-29 09:59 / var / lib / hadoop-hdfs / cache / mapred. drwxr-xr-x - hadoop mapeado 0 2014-05-29 09:59 / var / lib / hadoop-hdfs / cache / mapred / mapred. drwxrwxrwt - hadoop asignado 0 2014-05-29 09:59 / var / lib / hadoop-hdfs / cache / mapred / mapred / staging
Después de iniciar HDFS y crear "/tmp", Pero antes de iniciar JobTracker, cree el directorio HDFS especificado por el parámetro" mapred.system.dir "(por defecto $ {hadoop.tmp.dir} / mapred / system y cambie el propietario a mapred.
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -mkdir / tmp / mapred / system. [[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chown mapred: hadoop / tmp / mapred / system
Para iniciar MapReduce: inicie los servicios TT y JT.
[[correo electrónico protegido]conf] # service hadoop-0.20-mapreduce-tasktracker start Iniciando Tasktracker: [OK] iniciando tasktracker, iniciando sesión en /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-tasktracker-node.out
[[correo electrónico protegido] conf] # service hadoop-0.20-mapreduce-jobtracker start Iniciando Jobtracker: [OK] iniciando jobtracker, iniciando sesión en /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-jobtracker-master.out
A continuación, cree un directorio de inicio para cada usuario de hadoop. se recomienda que haga esto en NameNode; por ejemplo.
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -mkdir / user /[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chown /user/
Nota: donde es el nombre de usuario de Linux de cada usuario.
Alternativamente, puede crear el directorio de inicio de la siguiente manera.
[[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -mkdir / user / $ USER. [[correo electrónico protegido] conf] # sudo -u hdfs hadoop fs -chown $ USER / user / $ USER
Abra su navegador y escriba la URL como http://ip_address_of_namenode: 50070 para acceder a Namenode.
Abra otra pestaña en su navegador y escriba la URL comohttp://ip_address_of_jobtracker: 50030 para acceder a JobTracker.
Este procedimiento ha sido probado con éxito en RHEL / CentOS 5.X / 6.X. Comente a continuación si tiene algún problema con la instalación, lo ayudaré con las soluciones.