2台namenode active standBy
怎么进行状态切换
每台namenode上都有zkfc zookeeper failover controller
部署zookeeper集群进行状态切换
当standBy收到active时不会立即把自己的状态变成active
为了防止脑裂,会完成一些步骤
1、杀掉active 的namenode(ssh kill -9)
2、等待ssh的返回命令
3、如果响应是成功的,就把自己这一端的状态,切换为active
4、如果响应失败或者超时(可以配置一个超时时间)
需要用户提供一个脚本来做处理,确保或者那台active一定被kill掉
5、只要脚本的的调用返回值为true,则返回自己端的namenode
qjournal集群提供edits文件的读写服务,而且是一个高可用,高可靠的,安全性很高的集群
在HA的机制下,standBy会从qjournal集群中读取到edits文件,更新到自己的内存元数据中
他就承担了只能secondarynamenade所做checkpoint的职责,定期元数据合并
HA部署
克隆4台虚拟机
rm -rf /etc/udev/rules.d/70-persistent-net.rules
vi /etc/sysconfig/network-scripts/ifcfg-eth0
dd uuid hadaddr ipaddr
vi /etc/sysconfig/network
关机,生产物理地址,开机连接
配置hosts vi /etc/hosts
配置免密登陆,min1到min7上
#min3 ssh-keygen
#min3 ssh-copy-id min5
#min3 ssh-copy-id min6
#min3 ssh-copy-id min7
安装zookeeper
1、上传
2、解压 tar zxvf zook
3、cp zoo_sample.cfg zoo.cfg
4、cd ~/apps/zookeeper mkdir tmp
5、vi zoo.cfg dataDir=/root/apps/zookeeper/tmp
6、如果配置集群,需在zoo.cfg的最后添加
server.1=min5:2888:3888
server.2=min6:2888:3888
server.3=min7:2888:3888
7、echo 1 > /root/apps/zookeeper/tmp/myid
8、 min5# scp -r ~/apps/zookeeper min6:~/apps/
min5# scp -r ~/apps/zookeeper min7:~/apps/
9 min6# echo 2 > /root/apps/zookeeper/tmp/myid
min7# echo 3 > /root/apps/zookeeper/tmp/myid
10、./zkServer.sh start<