¿Cuáles son los pasos para instalar hadoop?
Nota: El paquete de instalación hadoop-2.4.1 proporcionado por Apache está compilado en un sistema operativo de 32 bits porque hadoop depende de algunas bibliotecas nativas de C.
Entonces, si instala hadoop-2.4.1 en una operación de 64 bits, deberá volver a compilarlo en un sistema operativo de 64 bits.
(Se recomienda instalar un sistema de 32 bits por primera vez. Subiré el sistema compilado de 64 bits al grupo * * *. Si está interesado, puede compilarlo usted mismo. )
La preparación para mí no entraré en detalles, se presenta en clase.
1. Modificar el nombre del host de Linux
2. Modificar la IP
3.
# # # # #Nota# # # #Si su empresa alquila un servidor o utiliza un host en la nube (como el host de Huawei, el host de Alibaba Cloud),
En /etc/ hosts, lo que debe configurarse es la relación de mapeo entre la dirección IP de la intranet y el nombre del host.
Apague el firewall
5. SSH sin inicio de sesión
6. Instale JDK y configure las variables de entorno, etc.
Planificación de clúster:
El proceso de ejecutar el software instalado por la IP del nombre de host.
ha 181 192.168.1.181 JDK, hadoopNameNode, DFSZKFailoverController(zkfc)
ha 182 192.168.1.182 JDK, hadoopNameNode, DFSZKFailoverController(zkfc)
ha 183 192.16 8 .1.183 JDK, hadoopResourceManager
ha 184 192.168.1.184 JDK, hadoopResourceManager
ha 185 192.168.1.185 JDK, hadoop, zookeeperDataNode, NodeManager, JournalNode, QuorumPeerMain
ha 186 192.168.1.186 JDK, hadoop, zookeeperDataNode, NodeManager, JournalNode, QuorumPeerMain
ha 187 192.168.1.187 JDK, hadoop, zookeeperDataNode, NodeManager, JournalNode, QuorumPeerMain
Descripción:
p>
1.hadoop2.0 generalmente consta de dos NameNodes, uno está activo y el otro en estado de espera. ¿iniciativa? ¿NameNode brinda servicios al mundo exterior y está en espera? ¿NameNode no proporciona servicios al mundo exterior, solo se sincroniza activamente? El estado del nodo de nombre para que pueda cambiarse rápidamente en caso de falla.
¿Hadoop2.0 proporciona oficialmente dos HDFS? La solución de Ha, una es NFS y la otra es QJM. Aquí usamos QJM simple. En esta solución, la información de metadatos se sincroniza entre los NameNodes primarios y en espera a través de un conjunto de nodos de registro. Siempre que un dato se escriba correctamente en la mayoría de los nodos de registro, se considera exitoso. Por lo general, configure un número impar de nodos de registro.
También se configura un clúster de cuidador del zoológico para la conmutación por error de ZKFC (DFSZKFailoverController).
¿Cuándo estás activo? ¿El NameNode cambiará automáticamente al modo de espera cuando cuelgue? NameNode está en estado de espera.
Hay otro problema con 2.2.hadoop-2.2.0, que es que solo hay un ResourceManager y hay un único punto de falla. hadoop-2.4.1 resuelve este problema. Hay dos administradores de recursos, uno activo y otro en espera, y el estado lo coordina el cuidador del zoológico.
Pasos de instalación:
1. Instale y configure el clúster zooekeeper (en HA185).
1.1 Descompresión
¿Alquitrán? -zxvf? ¿zookeeper-3.4.5.tar.gz? -¿DO? /app/
1.2 Modificar configuración
cd? /app/zookeeper-3.4.5/conf/
cp? zoo_sample.cfg? zoo.cfg
vim? zoo.cfg
Modificación: datadir =/app/zookeeper-3 4 .
Agregar al final:
servidor 1 = ha 185:2888:3888
server.2=HA186:2888:3888
<. p >server.3=HA187:2888:3888Guardar y salir
Luego cree una carpeta tmp.
mkdir? /app/zookeeper-3.4.5/tmp
Crea otro archivo vacío.
¿Tocar? /app/zookeeper-3.4.5/tmp/myid
Finalmente, escribe el ID en el archivo.
¿Eco? 1? /app/zookeeper-3.4.5/tmp/myid
1.3 Copie el zookeeper configurado a otros nodos (primero cree un directorio de fin de semana en los directorios raíz de HA186 y HA187 respectivamente: mkdir?/weekend) p>
scp? -r? /app/zookeeper-3.4.5/? HA186:/app/
scp? -r? /app/zookeeper-3.4.5/? HA187:/app/
Nota: Modifique el contenido de HA186 y HA187 correspondiente a /weekend/zookeeper-3 5/tmp/myid.
HA186:
¿Eco? 2? /app/zookeeper-3.4.5/tmp/myid
HA187:
¿Eco? 3? /app/zookeeper-3.4.5/tmp/myid
2. Instale y configure el clúster hadoop (ejecutándose en HA181).
2.1 Descompresión
¿Alquitrán? -zxvf? hadoop-2.4.1.tar.gz? -¿DO? /Weekend/
2.2 Configurar HDFS (todos los archivos de configuración HDFS (hadoop2.0 está en el directorio $HADOOP_HOME/etc/HADOOP).
#Agregar hadoop a las variables de entorno
vim? /etc/profile
¿Exportar? JAVA _ HOME =/app/JDK 1 7 0 _ 79
¿Salir? HADOOP_HOME =/app/HADOOP-2 4 1
¿Salir? PATH = $PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
#Los archivos de configuración de hadoop2.0 están todos en $HADOOP_HOME/etc/hadoop.
cd? /home/Hadoop/app/Hadoop-2 . 4 1/etc/Hadoop
2.2.1 ¿Modificar hadoop-env.sh
exportar? JAVA _ HOME =/app/JDK 1 7 0 _ 79
Modificar core-site.xml
lt configuración gt
lt! - ?Especifique el servicio de espacio de nombres de hdfs como ns1? - gt;
lt atributo gt
lt nombre gtfs.defaultFS lt/nombre gt;
lt valor gtHDFS://ns 1/ lt;/value gt;
lt/property gt;
lt! - ?Especificar directorio temporal de hadoop? - gt;
lt atributo gt
lt nombre gtHadoop.tmp.dir lt;/name gt;
lt valor gt/app/Hadoop-2. 4. 1/tmp lt;/valor gt;
lt/property gt;
lt! - ?Especificar la dirección del cuidador del zoológico? - gt;
lt atributo gt
lt nombre gtha quorum lt; /nombre gt
lt valor gt HA185: 2181, HA186: 2181 , ha 187:2181 lt;/value gt;
lt/property gt;
lt/configuration gt;
Modificar hdfs-site.xml p >
lt configuración gt
lt! - Especifique el servicio de espacio de nombres de hdfs como ns1. ¿Debería ser coherente con el de core-site.xml? - gt;
lt atributo gt
lt nombre gtdfs.nameserviceslt.
/nombre gt;
lt valor gtns 1 lt; /valor gt;
lt/propiedad gt; - ?Hay dos NameNodes bajo ns1, a saber, nn1 y nn2? - gt;
lt atributo gt
lt nombre gtDFS ha .ns 1 lt;/nombre gt; lt valor gtnn1, nn2 lt/. valor gt;
lt/property gt;
lt! - ¿Dirección RPC de nn1? - gt;
lt atributo gt
lt nombre gtDFS
lt valor. gtha 181: 9000lt;/valor gt;
lt/property gt;
lt! - ¿La dirección HTTP de nn1? - gt;
lt atributo gt
lt nombre gtDFS
lt valor. gtha 181:50070 lt;/valor gt;
lt/property gt;
lt! - ¿Dirección RPC de nn2? - gt;
lt atributo gt
lt nombre gtDFS
lt valor gtha. 182: 9000lt;/valor gt;
lt/propiedad gt;
lt! - ¿Dirección postal HTTP de nn2? - gt;
lt atributo gt
lt nombre gtDFS
lt valor gtha. 182: 50070 lt;/valor gt;
lt/propiedad gt;
lt! - ?Especifique dónde se almacenan los metadatos de NameNode en JournalNode? - gt;
lt atributo gt
lt nombre gtDFS .compartido dir lt /nombre gt; /ha 185:8485;ha 186:8485;ha 187:8485/ns 1 lt;/valor gt;
lt/property gt;
lt! - ?Especificar dónde almacena los datos el JournalNode en el disco local? - gt;
lt atributo gt
lt nombre gtDFS . ediciones de diario . -2 4 . 1/datos del diario lt;/valor g
t;
lt/property gt;
lt! - ?¿Cambiar automáticamente cuando falla la apertura de NameNode? - gt;
lt atributo gt
lt nombre gtDFS . conmutación por error automática habilitada lt;/nombre gt; gt;
lt/property gt;
lt! - ?¿Se implementa el cambio automático cuando falla la configuración? - gt;
lt atributo gt
lt nombre gtDFS . lt valor gtorg. .Apache Hadoop .HDFS servidor .Nodo de nombre .ha . - ?Método para configurar el mecanismo de aislamiento, múltiples mecanismos están separados por caracteres de nueva línea, es decir, cada mecanismo usa temporalmente una línea ->
lt atributo gt
lt nombre gtDFS. ha .esgrima .methodslt;/namegt;
ltvaluegt
esgrima
shell(/bin/true)
lt/ valor gt ;
lt/property gt;
lt! - ?¿Se requiere inicio de sesión ssh para utilizar el mecanismo de aislamiento sshfence? - gt;
lt atributo gt
lt nombre gtDFS .ssh lt valor. gt/home/hadoop/.
ssh/id _ RSA lt;/value lt;
lt/property lt;
lt! - ?¿Configurar el tiempo de espera del mecanismo de aislamiento? - gt;
lt atributo gt
lt nombre gtDFS . ssh tiempo de espera lt /nombre gt; lt/value gt;
lt/property gt;
lt/configuration gt;
Modificar mapred-site.xml
lt Configurar gt
lt! - ?Especificar mr frame como modo hilo? - gt;
lt atributo gt
lt nombre gtMapReduce .framework nombre lt;/nombre gt;
lt valor gt hilo lt/valor gt; /p>
lt/property gt;
lt/configuration gt;
2.2.5 Modificar hilo-site.xml
lt configuración gt
es! - ?Activar alta disponibilidad de RM - gt;
lt atributo gt
? ltname gtyarn . administrador de recursos ha habilitado lt;/name gt;
? lt valor gttrue lt/valor gt;
lt/propiedad gt
lt! - ?Especificar el grupo de RM? ¿IDENTIFICACIÓN? - gt;
lt atributo gt
? ltname gtyarn . administrador de recursos lt;/nombre gt;
? lt valor gtyrc lt/valor gt;
lt/property gt;
lt! - ?Especificar el nombre del RM? - gt;
lt atributo gt
? nombre gtyarn . administrador de recursos ha . RM-ids lt;/nombre gt;
? lt valor gtrm1, rm2 lt/valor gt;
lt/propiedad gt
lt! - ?Especifique la dirección de RM por separado? - gt;
lt atributo gt
? ltname gtyarn . administrador de recursos . nombre de host RM 1 lt;/name gt;
? lt valor gtha 183 lt;/valor gt;
lt/property gt;
lt propiedad gt
? ltname gtyarn . administrador de recursos . nombre de host rm2 lt;/nombre gt;
? Valor lt gtha 184 lt;/valor gt;
lt/property gt;
lt! - ?Especificar la dirección del clúster zk? - gt;
ltatributo gt
p>
? ltname gtyarn . administrador de recursos ZK-address lt;/name gt;
? lt valor gtHA185: 2181, HA186: 2181, ha 187: 2181 lt;/valor gt;
lt/property gt;
lt propiedad gt
? ltname gtyarn . administrador de nodos aux-services lt;/name gt;
? lt value gtmapreduce _ shuffle lt/value gt;
lt/property gt;
lt/configuration gt
2.2.6 Modificar el esclavo (slave It; es especificar la ubicación del nodo secundario, porque HDFS se iniciará en HA181 y hilo se iniciará en HA183.
Entonces, el archivo esclavo en HA181 especifica la ubicación del nodo de datos y el archivo esclavo en HA183 especifica la ubicación del administrador de nodos).
HA185
HA186
HA187
2.2.7 Configurar el inicio de sesión sin contraseña
#Primero configurar el inicio de sesión sin contraseña de HA181 a HA182, HA183, HA184, HA185, HA186, HA187.
#Generar un par de claves en HA181.
¿keygen ssh? -t? República de Sudáfrica
#Copie la clave pública a otros nodos, incluido usted mismo.
id-copia-ssh? HA181
id-copia-ssh? HA182
id-copia-ssh? HA183
id-copia-ssh? HA184
id-copia-ssh? HA185
id-copia-ssh? HA186
id-copia-ssh? HA187
#Configurar el inicio de sesión sin contraseña de HA183 a HA184, HA185, HA186 y HA187.
#Generar un par de claves en HA183.
¿keygen ssh? -t? República de Sudáfrica
#Copiar clave pública a otros nodos
ssh-copy-id? HA184
id-copia-ssh? HA185
id-copia-ssh? HA186
id-copia-ssh? HA187
#Nota: El inicio de sesión SSH sin contraseña debe configurarse entre dos nodos de nombre. No olvide configurar el inicio de sesión sin inicio de sesión de HA182 a HA181.
¿Hacer un par de claves en HA182
ssh-keygen? -t? República de Sudáfrica
ssh-copy-id? -¿I? HA181
2.4 copia el hadoop configurado a otros nodos.
scp? -r? /app/hadoop-2.5.1/? HA182:/app/
scp? -r? /app/hadoop-2.5.1/? HA183:/app/
scp? -r? /app/hadoop-2.5.1/? HA184:/app/
scp? -r? /app/hadoop-2.5.1/? HA185:/app/
scp? -r? /app/hadoop-2.5.1/? HA186:/app/
scp? -r? /app/hadoop-2.5.1/? HA187:/app/
# # #Nota: Siga estrictamente los pasos a continuación.
2.5 Inicie el clúster zookeeper (inicie zk en HA185, HA186 y tcast07 respectivamente).
cd? /app/zookeeper-3.4.5/bin/
. /zkServer.sh? Inicio
#Ver estado: un líder y dos seguidores
. /zkServer.sh? Status
2.6 inicia journalnode (ejecutado en HA185, HA186 y HA187 respectivamente).
cd? /app/hadoop-2.5.1
hadoop-daemon.sh? ¿comenzar? Journal Node
#Ejecute el comando jps para verificar si hay más procesos JournalNode en HA185, HA186 y HA187.
Formato 2.7 ZKFC (solo ejecutar en HA181) ¿HDFS? ¿zkfc? -Formato k
Formato 2.8 HDFS
#Ejecutar el comando en HA181:
hdfs? nodo de nombre? -Formato
#Después de formatear, se generará un archivo basado en la configuración de hadoop.tmp.dir en core-site.xml, configuré /app/hadoop-2.4.1/tmp y luego. /fin de semana/Hadoop-2 .4 1/tmp copiado a HA182.
scp? -r? tmp/? ha 182:/app/Hadoop-2 . 5 1/
# # ¿También puedes hacerlo, sugiere HDFS? nodo de nombre? -bootstrapStandby
2.9 Iniciar HDFS (ejecutado en HA181)
sbin/start-dfs.sh
2.10 Iniciar hilo (# # # #Nota# # # : start-yarn.sh se ejecuta en HA183. Namenode y Resourcemanager están separados debido a problemas de rendimiento. Debido a que ambos ocupan muchos recursos, están separados y se iniciarán en máquinas diferentes.
sbin/start-yarn.sh
En este punto, se ha configurado hadoop-2.4.1 y se pueden contar las visitas al navegador:
http: // 192.168.1.181:50070
NombreNodo? HA181:9000'? (Actividad)
http://192.168.1.182:50070
NameNode? HA182:9000'? (en espera)
¿Verificar HDFS? Ja
Primero cargue un archivo en HDFS.
¿hadoop? fs? -¿poner? /etc/perfil? /perfil
hadoop? fs? -¿Es? /
Luego mata el NameNode activo.
¿Matar? -9?ltpido? ¿de? NN gt
Acceso mediante navegador: http://192.168.1.182:50070.
¿NombreNodo? HA182:9000'? (Activo)
En este punto, el NameNode en HA182 se activa.
Ejecutar comando:
hadoop? fs? -¿Es? /
-rw-r-r-? 3? ¿Raíz? ¿Superior? 1926?2014-02-06?15:36?/Profile
¡El archivo que acabamos de subir todavía existe! ! !
Iniciar manualmente el NameNode pendiente.
sbin/hadoop-daemon.sh? ¿comenzar? namenode
Acceso mediante navegador: http://192.168.1.181:50070.
¿NombreNodo? HA181:9000'? (Estado de espera)
Verificar hilo:
Ejecute el programa WordCount en la demostración proporcionada por hadoop:
hadoop? ¿Frasco? compartir/Hadoop/MapReduce/Hadoop-MapReduce-examples-2 4 . ¿Recuento de palabras? /¿perfil? /out
¡Bien, ya terminaste! ! !
CID-74d 21742-3e4b-4df 6-a99c-d52f 703 b49c 0
¿Algunas instrucciones sobre el estado de funcionamiento del grupo de prueba? :
bin/hdfs? ¿dfsadmin? ¿Informe? Vea la información de estado de cada nodo de HDFS.
bin/hdfs? ¿Hadmin? -getServiceState? nn1? Obtenga el estado de alta disponibilidad del namenode.
sbin/hadoop-daemon.sh? ¿comenzar? Namenode inicia el proceso de namenode por separado.
. /hadoop-daemon.sh? ¿comenzar? ¿zkfc? Inicie un proceso zkfc por separado.