Preludio
1. Luego modifique el nombre de host para facilitar el acceso entre clústeres
Modificación: hostnamectl set-hostname centos1
Vista: nombre de host
2. Modifique el archivo de mapeo de resolución de nombre de dominio (agregue una nueva línea) para que se pueda acceder directamente por el nombre de host en el futuro
vi / etc / hosts
#Content agrega una nueva línea al final
192.168.190.130 cenos1
192.168.190.131 centos2
192.168.190.132 centos3
red de servicio reiniciar # Reiniciar el servicio de tarjeta de red
reiniciar #Restart
ping centos1 #La prueba es efectiva
3. Apague el firewall y prohíba el arranque
firewall-cmd --state #Ver el estado del firewall
systemctl stop firewalld.service #Detener el firewall
systemctl deshabilita firewalld.service #Prohibir el inicio del firewall
4. Cerrar selinux
vim / etc / sysconfig / selinux
Modificar contenido SELINUX = deshabilitado
SELINUXTYPE = objetivo comentado
scp / etc / sysconfig / selinux centos2: / etc / sysconfig /
scp / etc / sysconfig / selinux centos3: / etc / sysconfig /
Descargar abajo
http://mirrors.shu.edu.cn/apache/hadoop/common/
hadoop-2.7.7.tar.gz
Más tarde se cambió a hadoop-2.6.5.tar.gz para instalar oozie
Instalar
cd / usr / local
rz
tar xzvf hadoop-2.7.7.tar.gz
rm -rf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7.tar.gz Hadoop
Configurar variables de entorno
vim / etc / profile #Configure variables de entorno, ingrese la parte inferior para iniciar la configuración:
exportar HADOOP_HOME = / usr / local / hadoop
export PATH = $ PATH: $ JAVA_HOME / bin: $ HADOOP_HOME / bin: $ HADOOP_HOME / sbin
wq
Configure hadoop-env.sh, yarn-env.sh, mapred-env.sh (los tres sistemas cambiaron)
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改 : export JAVA_HOME = $ {JAVA_HOME} 为 : export JAVA_HOME = / usr / local / jdk
wq
vim /usr/local/hadoop/etc/hadoop/yarn-env.sh
export JAVA_HOME = / usr / local / jdk
vim /usr/local/hadoop/etc/hadoop/mapred-env.sh
export JAVA_HOME = / usr / local / jdk
source / etc / profile #effective de inmediato
Prueba
Después de probar la configuración distribuida de hadoop, asegúrese de que Hadoop se haya iniciado y de que haya un directorio correspondiente.
hadoop version
En este momento, el entorno hadoop más básico (este no es un entorno de desarrollo), pruebe un programa de prueba que viene con hadoop (implementando el número de palabras "hola palabra del mundo hadoop")
cd / usr / local / hadoop
entrada mkdir
echo hola sm hola zhangsan hola lisi hola sm> input / info.txt
entrada de cd
gato info.txt
cd / usr / local / hadoop
hadoop jar share / hadoop / mapreduce / sources / hadoop-mapreduce-examples-2.7.7-sources.jar org.apache.hadoop.examples.WordCount input output
salida de cd
ll
0 0
Prueba en hdfs:
hadoop fs -put /songtemptest/worldcount.txt / test / input
cd / usr / local / hadoop / share / hadoop / mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount / test / input / test / output
La configuración de hadoop del sistema distribuido
Procesamiento sin inicio de sesión SSH
ll ~ # Si ha configurado ssh para que se elimine
rm -rf ~ / .ssh
ssh-keygen -t rsa #generate ssh key en el host centos1
Todo el camino ingrese el procesamiento predeterminado
cat ~ / .ssh / id_rsa.pub >> ~ / .ssh / certified_keys # Copie la clave pública en el archivo de autorización
raíz ssh @ centos1 #Iniciar sesión
salir # Cerrar sesión
Nota: Sincronice otras máquinas: ssh-copy-id centos2
Configuración: core-site.xml Información básica de Hadoop, incluido el directorio temporal, la dirección de acceso, etc.
Configuración: procesamiento de trabajos relacionados con la configuración yarn-site.xml
Configuración: hdfs-site.xml es muy importante, puede determinar el número de copias de seguridad de archivos y la ruta de la carpeta de datos
Configuración: core-site.xml (se modifican los tres sistemas)
core-site.xml es la información central de Hadoop, incluido el directorio temporal, la dirección de acceso, etc.
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuración>
<propiedad>
<name> hadoop.tmp.dir </name>
<value> / home / root / hadoop_tmp </value>
<description> Reducción para otros directorios temporales. </description>
</property>
<propiedad>
<name> fs.defaultFS </name>
<valor> hdfs: // centos1: 9000 </value>
</property>
</configuration>
La información "/ Home / root / hadoop_tmp" es la más importante. La información del archivo temporal de esta configuración de ruta de archivo, si no está configurada, se generará un archivo "tmp" en la carpeta hadoop (muchas personas lo configurarán en "/ user / local / hadoop / tmp "), si se configura de esta manera, toda la información se borrará una vez reiniciada, lo que significa que el entorno de Hadoop no será válido en este momento.
El mensaje " centos1: 9000 " describe la ruta del administrador de páginas que se abrirá en el futuro;
La versión de hadoop 2.x está predeterminada en el puerto 9000. Si se usa la versión 1.x, la predeterminada es 8020.
Para garantizar que la operación general esté libre de errores, puede crear directamente un directorio "/ home / root / hadoop_tmp";
cd ~
mkdir hadoop_tmp
Configuración: yarn-site.xml (solo modificar el nodo maestro)
Procesamiento de trabajos relacionados con la configuración Yarn-site.xml
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuración>
<propiedad>
<nombre> yarn.resourcemanager.admin.address </name>
<value> centos1: 8033 </value>
</property>
<propiedad>
<nombre> yarn.nodemanager.aux-services </nombre>
<value> mapreduce_shuffle </value>
</property>
<propiedad>
<nombre> yarn.nodemanager.aux-services.mapreduce_shuffle.class </name>
<value> org.apache.hadoop.mapred.ShuffleHandler </value>
</property>
<propiedad>
<nombre> yarn.resourcemanager.resource-tracker.address </name>
<value> centos1: 8025 </value>
</property>
<propiedad>
<nombre> yarn.resourcemanager.scheduler.address </name>
<value> centos1: 8030 </value>
</property>
<propiedad>
<nombre> yarn.resourcemanager.address </nombre>
<value> centos1: 8050 </value>
</property>
<propiedad>
<nombre> yarn.resourcemanager.webapp.address </name>
<value> centos1: 8088 </value>
</property>
<propiedad>
<nombre> yarn.resourcemanager.webapp.https.address </name>
<value> centos1: 8090 </value>
</property>
</configuration>
Configuración: hdfs-site.xml (se modifican los tres sistemas)
hdfs-site.xml es muy importante, puede determinar la cantidad de copias de seguridad de archivos y la ruta de la carpeta de datos
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuración>
<propiedad>
<name> dfs.replication </name>
<value> 1 </value>
</property>
<propiedad>
<name> dfs.namenode.name.dir </name>
Archivo <value>: /// usr / local / hadoop / dfs / name </value>
</property>
<propiedad>
<name> dfs.datanode.data.dir </name>
Archivo <value>: /// usr / local / hadoop / dfs / data </value>
</property>
<propiedad>
<name> dfs.namenode.http-address </name>
<value> centos1: 50070 </value>
</property>
<propiedad>
<name> dfs.namenode.secondary.http-address </name>
<value> centos1: 50090 </value>
</property>
<propiedad>
<name> dfs.permissions </name>
<valor> falso </valor>
</property>
<propiedad>
<name> dfs.namenode.datanode.registration.ip-hostname-check </name>
<valor> falso </valor>
</property>
</configuration>
"Dfs.replication": el número de copias del archivo, en circunstancias normales, el archivo tendrá una copia de seguridad de 3 copias;
"Dfs.namenode.name.dir": define la ruta del nodo de nombre;
"Dfs.datanode.data.dir": define la ruta del nodo del archivo de datos;
"Dfs.namenode.http-address": acceso de ruta http del servicio de nombres;
"Dfs.namenode.secondary.http-address": el nodo del segundo nombre;
"Dfs.permissions": problema de autenticación de permisos, porque si está configurado, puede que no sea posible acceder a los archivos en el futuro;
dfs.namenode.datanode. 192.168.190.138) "tm lee ipv6, en realidad debería ser ipv4 ip.
Configuración: mapred-site.xml (solo modificar el nodo maestro)
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuración>
<propiedad>
<name> mapreduce.framework.name </name>
<valor> hilo </value>
</property>
</configuration>
Otra configuración
Crear archivos maestros, esclavos
vim / usr / local / hadoop / etc / hadoop / masters # 加入 “centos1”
vim / usr / local / hadoop / etc / hadoop / slaves #Cambie "localhost" por
centos2
centos3
hadoop pertenece a un entorno de desarrollo distribuido, considerando que el clúster se construirá en el futuro;
Se recomienda crear un archivo maestro en el directorio "/ usr / local / hadoop / etc / hadoop /", escriba el nombre del host, el contenido es centos1 (el nombre del host definido en el archivo hosts): No importa
Crear nombre de carpeta, datos
cd / usr / local / hadoop
mkdir dfs dfs / nombre dfs / data
Porque en este momento, todas las rutas de almacenamiento de namenode y datanode se establecen en el directorio hadoop, si desea estar seguro, puede crear el suyo propio;
Nota: Si hay un problema con su hadoop y está reconfigurado, asegúrese de eliminar estas dos carpetas por completo
Formato
cd / usr / local / hadoop / bin
hdfs intentode -format
El sistema de archivos formateado "INFO util.ExitUtil: Saliendo con el estado 0" se realizó correctamente
Iniciar / verificar / acceder / detener
1. Comience
cd / usr / local / hadoop / bin
start-all.sh #start hadoop
2. Verificación
jps #Compruebe el proceso de Java, si hay 6 como a continuación
2536 DataNode
2408 NameNode
3034 NodeManager
2907 ResourceManager
3339 Jps
2748 SecondaryNameNode
Nota: Si se trata de una implementación de clúster, solo hay 4, y los otros dos NodeManager y DataNode están en la máquina esclava
3. Visita
http://192.168.190.130:50070
Si también desea usar el nombre de centos1 externamente (windows), debe modificar el archivo de hosts y agregar la configuración de mapeo:
C: \ Windows \ System32 \ drivers \ etc \ hosts aumento: 192.168.190.130 centos1
http://192.168.190.130:8088/cluster
4. Parar
stop-all.sh
Probar inicio de sesión sin contraseña
ssh centos2
acceso al sistema de archivos hdfs
http://192.168.190.130:50070/explorer.html#/
Si se requiere acceso al nombre del host, la asignación del nombre del host debe realizarse en C: \ Windows \ System32 \ drivers \ etc \ hosts.
Tai Hang
1. El nombre secundario del nodo no se inicia
Hadoop debe eliminarse después de cambiar la versión: / home / root / hadoop_tmp este directorio,
No se confunda con el directorio / root / hadoop_tmp
Otro archivo de registro es este:
/usr/local/hadoop/logs/hadoop-root-secondarynamenode-centos1.log
No esto: /usr/local/hadoop/logs/hadoop-root-secondarynamenode-centos1.out
2. configuración de hdfs-site.xml
dfs.namenode.datanode. 192.168.190.138) "tm lee ipv6, en realidad debería ser ipv4 ip.
Operaciones comunes de Hadoop
hadoop fs y hdfs dfs son lo mismo
Operaciones de directorio
hadoop dfsadmin -safemode dejar # modo seguro Salir
hadoop fs -mkdir -p / test / test1 #Cascade para crear un directorio
hadoop fs -ls / #View directorio raíz
hadoop fs -ls #View / user / root /
hadoop fs -rm -r -f / test #Cascade eliminar directorio
Operaciones de archivo
hadoop fs -put / usr / local / hadoop / output / part-r-00000 / test / #upload archivos locales al directorio hdfs / test
hadoop fs -put / usr / local / hadoop / output / part-r-00000 hdfs: // centos1: 9000 / test #o escríbalo así
hadoop fs -rm / test / part-r-00000 # Eliminar archivos
hadoop fs -get / test / part-r-00000 # Descarga el archivo en hdfs al directorio actual