本文主要是介绍hdfs2.x HA搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官档:http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

node01免秘钥控制node02、node03、node04
node02免秘钥控制node01 zkfc自动故障转移 原因:若nn01 active 挂了 需要把nn02 standby 提升为active


把生成的公钥添加到认证文件中去 ssh localhost 验证免秘钥登录自身
node02
node01
在node02上免秘钥控制node01

![]()
删除红框内的 4dd
配置点:
1.逻辑到物理的映射 nameservice 到nn 到物理节点

即: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>node01:8020</value>
</property>
<property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>node02:8020</value>
</property>
<property><name>dfs.namenode.http-address.mycluster.nn1</name><value>node01:50070</value>
</property>
<property><name>dfs.namenode.http-address.mycluster.nn2</name><value>node02:50070</value>
</property>
2.集群的通信方式 share edits dir

即:hdfs-site.xml
<property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
</property>
<property><name>dfs.namenode.shared.edits.dir</name><value>/var/sxt/hadoop/ha/jn</value>
</property>
3.故障的切换方式

即:hdfs-site.xml
<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>
</property>
<property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_dsa</value>
</property>
4.自动化

即:hdfs-site.xml
<property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property>
![]()

----------------------zk集群
node02

![]()
![]()
新增server1 2 3配置


node03 node04同理
配置前 先分发
![]()
![]()

node04同理

zk路径加入到path

在任意位置可以启动zk集群
node02

node03

此时查看node02的状态

此时查看node03的状态


验证zk集群
![]()


![]()
起journalnode集群

node02 node03同理
启动前 第一台NN格式化

启动第一台NN
![]()
注意:第二台NN不能格式化 根据官档用如上命令

如上图即为同步信息成功
![]()
![]()
zkfc格式化zk集群 目的:生成前缀路径 防止数据覆盖
再次查看node04 多了 hadoop-ha


启动hdfs集群

再次查看node04


jps 查看node01 node02 node03 node04 各个进程即角色






hdfs-ha集群即搭建完成!
验证:
干掉第一台的NN
node04上观察


第二台NN变成了active
![]()

干掉第二台的zkfc 自动故障转移进程

则第一台NN又变成了active
------------EOF----------------------------------EOF----------------------EOF--------------------
这篇关于hdfs2.x HA搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!