:-:
[danger] 前提:确保Zookeeper集群已经搭建完毕
[info] (1)在3台Zookeeper节点上分别执行以下命令启动Zookeeper服务:
# Zookeeper启动命令
zkServer.sh start
[info] (2)停止整个HDFS-HA集群(我们NameNode在bigdata1和bigdata2,就停这两台机器)
# 1.停止HDFS的NameNode命令,分别在bigdata1和bigdata2操作
hadoop-daemon.sh stop namenode
[info] (3)在bigdata1增加:hdfs-site.xml增加如下信息:
#配置信息
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<description>开启NameNode失败自动故障转移</description>
</property>
[info] (4)在bigdata1增加:core-site.xml增加如下信息:
#配置信息
<property>
<name>ha.zookeeper.quorum</name>
<value>bigdata1:2181,bigdata2:2181,bigdata3:2181</value>
<description>ZKFailoverController 自动故障转移所使用的ZK服务器列表</description>
</property>
[info] (5)拷贝bigdata1服务器的 hdfs-site.xml 和 core-site.xml 到bigdata2和bigdata3
# 1.进入配置文件目录
cd /data/module/hadoop-2.7.3/etc/hadoop
# 2.拷贝到 bigdata2
scp hdfs-site.xml 192.168.46.112:/data/module/hadoop-2.7.3/etc/hadoop
scp core-site.xml 192.168.46.112:/data/module/hadoop-2.7.3/etc/hadoop
# 3.拷贝到 bigdata3
scp hdfs-site.xml 192.168.46.113:/data/module/hadoop-2.7.3/etc/hadoop
scp core-site.xml 192.168.46.113:/data/module/hadoop-2.7.3/etc/hadoop
[info] (6)在ZooKeeper上创建一个用来存储自动故障转移数据的znode,在任意NameNode 上执行如下命令完成znode创建
# 1.在bigdata1主机上执行如下命令
hdfs zkfc -formatZK
[success] 至此,自动故障转移就算是配置完成了
[info] (7)HA集群启动
配置了自动故障转移后,执行start-dfs.sh脚本将会在那些运行NameNode的机器上自动启动一个ZKFC守护进程,
在ZKFC启动的过程中,它们会自动地选择一个NameNode作为Acitve NameNode。
[success] (1)自动选举ACITVE的NameNode,有可能是bigdata1或者bigdata2
# 在bigdata1里启动HDFS集群
start-dfs.sh
[success] (2)关闭处于Active状态的机器NameNode,查看是否会自动切换备用NameNode
# 关闭NameNode命令
hadoop-daemon.sh stop namenode
内容来源于网络,如有侵权,请联系作者删除!