HDFS distribuidos clusters, clustering de alta disponibilidad para construir
A. Para construir una (versión 1.x) totalmente distribuida
hdp-01 | hdp-02 | hdp-03 | hdp-04 | hdp-05 | |
---|---|---|---|---|---|
NameNode | √ | ||||
secondarynamenode | √ | ||||
DataNode | √ | √ | √ | √ | √ |
Paso 1: otras llaves de hospedaje gratuitas
- Generar sus propias claves para
- ssh-keygen -t rsa -P '' -f ~ / .ssh / id_rsa
- La copia de su clave pública a otros (me tienen que configurar sus propias teclas libres)
- ssh-copy-id [email protected] ~ / .ssh / id_rsa.pub
- ssh-copy-id [email protected] ~ / .ssh / id_rsa.pub
- ssh-copy-id [email protected] ~ / .ssh / id_rsa.pub
- ssh-copy-id [email protected] ~ / .ssh / id_rsa.pub
- -ssh-copy-id [email protected] ~ / .ssh / id_rsa.pub
- La otra cara de la dirección a los known_hosts
- ssh root @ HDP-01, entre sí
- ssh root @ HDP-02 ...
- ssh root @ HDP-03 ...
- ssh root @ HDP-04
- ssh root @ HDP-05
- ssh root @ localhost
- [email protected] ssh
Paso 2: Configurar Hadoop
-
La extracción de hadoop-2.10.0.tar.gz y de instalación / opt / Hadoop
(típicamente directorio / opt directorio de instalación de software personalizado)- tar -zxvf hadoop-2.10.0.tar.gz -C / opt / hadoop
-
Modificar JAVA_HOME
- Modificar hadoop-env.sh, mapred-env.sh, yarn-env.sh el JAVA_HOME
-
Modificado núcleo-site.xml
-
vim núcleo-site.xml
-
<property> <name>fs.defaultFS</name> <value>hdfs://hdp-01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/hadoop/full</value> </property>
-
-
Modificar hdfs-site.xml
-
vim-hdfs site.xml
-
<property> <name>dfs.namenode.secondary.http-address</name> <value>hdp-02:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>hdp-02:50091</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property>
-
-
esclavos Modificar
-
esclavos vim
-
hdp-01 hdp-02 hdp-03 hdp-04 hdp-05
-
-
Modificar las variables de entorno
-
vim / etc / profile
-
export JAVA_HOME=/opt/jdk/jdk1.8.0_51 export HADOOP_HOME=/opt/hadoop-2.10.0/hadoop-2.10.0 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
source / etc / profile
-
Copia variable de entorno a otros nodos
-
[Root @ HDP-01 ~] scp -r / etc / root @ perfil HDP-02: / etc / profile
-
[Root @ HDP-02 ~] source / etc / profile
-
...
-
-
Secuencialmente copiados al otro nodo Hadoop
- [Root @ HDP-02 ~] scp -r root @ HDP-01: /opt/hadoop/hadoop2.10.0 / opt / hadoop
- ...
-
Formateo NameNode nodo
-
[Root @ HDP-01 ~] hdfs NameNode -format
-
[Root @ HDP-01 ~] start-dfs.sh
-
-
Navegar HDFS
- http://192.168.183.21:50070/
-
primer racimo
- [1] stop-dfs.sh
II. Para construir un clúster de alta disponibilidad (HA Hadoop) (versión 2.x)
hdp-01 | hdp-02 | hdp-03 | hdp-04 | hdp-05 | |
---|---|---|---|---|---|
activenamenode | √ | ||||
Standby nodo particular | √ | ||||
DataNode | √ | √ | √ | √ | √ |
cuidador del zoológico | √ | √ | √ | ||
journalnode | √ | √ | √ |
Construir Zookeeper
-
Subir Zookeeper, descomprimir, copiar
- [Root @ HDP-03 ~] # tar -zxvf empleado del zoológico-3.4.6.tar.gz -C / opt / cuidador del zoológico
-
Modificar el archivo de configuración
-
[Root @ HDP-03 ~] # cd /opt/zookeeper/zookeeper-3.4.6/conf/
-
[Root @ HDP-03 ~] # cp zoo_sample.cfg zoo.cfg
-
Vine zoo.cfg
-
#修改zookeeper数据存放的目录 dataDir=/var/zookeeper # 设置服务器内部通信的地址和zk集群的节点 server.1=hdp-03:2888:3888 server.2=hdp-0:2888:3888 server.3=hdp-05:2888:3888
-
-
La creación de myid
-
[HDP-03, HDP-04, HDP-05] mkdir -p / var / SXT / cuidador del zoológico
-
[Root @ HDP-03 ~] echo 1> / var / cuidador del zoológico / myid
-
[Root @ HDP-04 ~] eco 2> / var / cuidador del zoológico / myid
-
[Root @ HDP-05 ~] echo 3> / var / cuidador del zoológico / myid
-
-
copia Zookeeper
- [HDP-04, HDP-05] scp -r root @ HDP-01: /opt/zookeeper/zookeeper-3.4.6 / opt / cuidador del zoológico /
-
Establecer las variables de Medio Ambiente
-
aumentar ZOOKEEPER_HOME
-
Copiar a HDP-04, HDP-05, y la fuente
-
-
Habilitar el clúster
- [HDP-03, HDP-04, HDP-05] inicio zkServer.sh
-
Construir Hadoop-HA
-
Sobre la base de hadoop clúster completamente distribuida (hadoop versión 1.x de la arquitectura) antes de construir, y luego modificar la configuración siguiente
-
Modificado núcleo-site.xml
-
vim núcleo-site.xml
-
<property> <name>fs.defaultFS</name> <value>hdfs://myCluster</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>hdp-03:2181,hdp-04:2181,hdp-05:2181</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/sxt/hadoop/ha</value> </property>
-
-
Modificar hdfs-site.xml
-
vim-hdfs site.xml
-
<property> <name>dfs.nameservices</name> <value>myCluster</value> </property> <property> <name>dfs.ha.namenodes.myCluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.myCluster.nn1</name> <value>hdp-01:8020</value> </property> <property> <name>dfs.namenode.rpc-address.myCluster.nn2</name> <value>hdp-02:8020</value> </property> <property> <name>dfs.namenode.http-address.myCluster.nn1</name> <value>hdp-01:50070</value> </property> <property> <name>dfs.namenode.http-address.myCluster.nn2</name> <value>hdp-02:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hdp-03:8485;hdp-04:8485;hdp-05:8485/myCluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/var/hadoop/ha/jn</value> </property> <property> <name>dfs.client.failover.proxy.provider.myCluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> <value>shell(true)</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>
-
-
esclavos Modificar
-
esclavos vim
-
hdp-01 hdp-02 hdp-03 hdp-04 hdp-05
-
-
La carpeta de directorio etc hadoop copiado a otros nodos
-
variables de entorno modificar / etc / profile
-
Compruebe si hay ZOOKEEPER_HOME
-
Iniciar un hilo separado JournalNode
- [HDP-03, HDP-04, HDP-05] hadoop-daemon.sh journalnode inicio
- JPS
- cd / var / SXT / Hadoop / ha / jn /
-
Formatear NameNode primaria
- [Root @ HDP-01 ~] # hdfs NameNode -format
- [Root @ HDP-01 ~] # hadoop-daemon.sh NameNode inicio
-
Arranque el nodo en espera NameNode
- [Root @ HDP-02 ~] # hdfs NameNode -bootstrapStandby
-
ZOOKEEPER comenzará el HDP-03 ~ 05
- inicio zkServer.sh
- estado zkServer.sh
-
formateo ZKFC
- [hdp-01、hdp-02] hdfs zkfc -formatZK
-
Re-abrir el clúster
- Primer cluster empleado del zoológico abierto, entonces se puede start-dfs.sh