HDFS estruturas de fragmentação distribuídos [avançada]
aglomerado NameNode HDFS para garantir alta disponibilidade, de modo a permitir a escolha NameNode mais seguro aqui com os conjuntos ZooKeeper para garantir
Ambiental e pronto
Ibid artigos Edição
Construir um cluster zookeeper
- Baixe e descompacte o tratador
- Crie uma pasta de dados no tratador diretório raiz
- Modificar a configuração para o conf pasta
3.1 Modificar zoo_sample.cfg chamado zoo.cfg
3.2 edição 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 criar arquivos no tratador / dados
第一台节点myid里面填0 第二台 1 以此类推(三台机器分别为 0,1,2)
- Com Livre três máquinas cada log primário densidade de nós ssh (incluindo o próprio nó mestre)
ZooKeeper iniciar e comandos de parada
bin/zkServer.sh start | stop | restart | status
comandos zookeeper cliente
- Nota: O nó mestre corre o tratador
bin/zkCli.sh
HA-HDFS distribuído configuração de cluster
- Se você estiver usando o cluster ordinária anterior, recomenda-se para esvaziar a data / tmp, se o novo ambiente pode se referir ao artigo anterior para construir uma versão baseada fundação do ambiente de cluster
- Modificar o arquivo de configuração do
core-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
- Primeiro começar aglomerado tratador (três para ser executado para iniciar tratador Directiva Serviços)
- No nó mestre NameNode formatado zkfc
bin/hdfs zkfc -formatZK
- Journalnode começar com o seguinte comando em cada nó journalnode
sbin/hadoop-daemon.sh start journalnode
- No diretório namenode journalnode nó mestre e formatação namenode
bin/hdfs namenode -format ns
- namenode processo começou no namenode nó mestre
sbin/hadoop-daemon.sh start namenode
- Preparação namenode nó primeiro comando executado, este é o formato dos nós de diretório e a espera namenode metadados sobre do namenode nó mestre Copiar, e este comando não irá re-formatado journalnode diretório! E, em seguida, iniciar o processo de backup com um segundo namenode comando
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
- Em dois nós NameNode execute o seguinte comando
sbin/hadoop-daemon.sh start zkfc
- Comece DataNode DataNode em todos os nós execute o seguinte comando
sbin/hadoop-daemon.sh start datanode
- comandos de início e paragem diária
sbin/start-dfs.sh
sbin/stop-dfs.sh