HDFS distribuidos estructuras de grupo [avanzada]
cúmulo NameNode HDFS para asegurar una alta disponibilidad, con el fin de permitir la elección NameNode más seguro aquí con racimos ZOOKEEPER para asegurar
Medioambiental y listo
Ibid artículos Edición
Crear un clúster empleado del zoológico
- Descargar y descomprimir el cuidador del zoológico
- Crear una carpeta de datos en el directorio raíz empleado del zoológico
- Modificar la configuración en la carpeta conf
3.1 Modificar zoo_sample.cfg llamado zoo.cfg
3,2 edición zoo.cfg
dataDir=/opt/install/zookeeper-3.4.5/data
server.0=hadoop1.msk.com:2888:3888
server.1=hadoop2.msk.com:2888:3888
server.2=hadoop3.msk.com:2888:3888
- MyID crear archivos en el cuidador del zoológico / datos
第一台节点myid里面填0 第二台 1 以此类推(三台机器分别为 0,1,2)
- Con cada registro de densidad nodo primario ssh libre tres máquinas (incluyendo el nodo maestro en sí)
ZooKeeper iniciar y órdenes de parada
bin/zkServer.sh start | stop | restart | status
los comandos del cliente zookeeper
- Nota: El nodo maestro dirige el cuidador del zoológico
bin/zkCli.sh
HA-HDFS distribuye instalación de clúster
- Si está utilizando el cluster ordinaria anterior, se recomienda vaciar los datos / tmp, si el nuevo entorno puede hacer referencia al artículo anterior para construir una versión basada en la fundación del entorno de clúster
- Modificar el archivo de configuración
de núcleo-site.xml
<!-- 这里的ns随意 只是入口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/install/hadoop-2.5.2/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop1.msk.com:2181,hadoop2.msk.com:2181,hadoop3.msk.com:2181</value>
</property>
** hdfs-site.xml **
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!--指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!-- ns下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>hadoop1.msk.com:8020</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>hadoop1.msk.com:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>hadoop2.msk.com:8020</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>hadoop2.msk.com:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop1.msk.com:8485;hadoop2.msk.com:8485;hadoop3.msk.com:8485/ns</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/install/hadoop-2.5.2/journal</value>
</property>
<!-- 开启NameNode故障时自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制,如果ssh是默认22端口,value直接写sshfence即可 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 使用隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
export JAVA_HOME=/usr/java/jdk1.7.0_71
- En primer lugar empezar cúmulo empleado del zoológico (tres se ejecute para comenzar cuidador del zoológico Directiva de Servicios)
- En el nodo maestro NameNode formateado zkfc
bin/hdfs zkfc -formatZK
- Journalnode comenzar con el siguiente comando en cada nodo journalnode
sbin/hadoop-daemon.sh start journalnode
- En el directorio NameNode journalnode nodo maestro y NameNode formatear
bin/hdfs namenode -format ns
- proceso NameNode inició en el NameNode nodo maestro
sbin/hadoop-daemon.sh start namenode
- Preparación NameNode ejecutado primer nodo de comando, este es el formato de los nodos de directorio y el modo de espera NameNode metadatos sobre NameNode del nodo maestro de copia, y este comando no se re-formateado journalnode directorio! Y luego iniciar el proceso de copia de seguridad con un segundo comando NameNode
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
- En dos nodos NameNode ejecutar el siguiente comando
sbin/hadoop-daemon.sh start zkfc
- Comience DataNode DataNode en todos los nodos de ejecutar el siguiente comando
sbin/hadoop-daemon.sh start datanode
- comandos de inicio y parada diaria
sbin/start-dfs.sh
sbin/stop-dfs.sh