首先说一下什么是zookeeper
(1)zookeeper是一个用于降低分布式系统开发过程中节点间协调问题开发难度的工具!
(2)zookeeper提供的功能有:
提供数据注册功能;
提供数据查询功能;
提供数据监听功能
zookeeper怎么用?
安装:
机器:奇数台(1,3,5,7,…….):一个leader,众多follower
为什么要奇数台?
zookeeper这个分布式系统没有固定的主节点(leader),它的主节点是通过集群各节点动态选举出来的。
选举的规则:谁得多数票,谁就当选为leader
v 初次启动的投票过程(假设集群为3台,每台节点都在配置文中配了自己的id):
集群中n1启动,它会在网络中寻找leader,没有leader,则开始向网络中广播投票(第一次投自己)
集群中n2启动,它会在网络中寻找leader,没有leader,但是收到了n1的票,n2也投票(由于n2的id>n1的id,n2就投自己); n1会收到n2的票后,得知n2的存在以及n2的id,则n1重新投票(投n2);
此时,n2得2票,过半数,则当选为leader,n2将自己的工作状态切换为Leader;n1则将自己的状态从投票状态切换为follower;
启动中n3启动,它会在网络中寻找leader,发现n2是leader,自己主动进入follower状态;
v 运行过程中leader宕机,其他机器发现leader不在,进入投票选举状态;
投票规则:投数据版本最新的节点为leader;如果大家的数据版本一样,则投id大的为leader;
安装步骤
1.先解压到指定目录
tar -zxvf zookeper……. -C /usr/local
2.添加一个zoo.cfg配置文件,复制根目录下的zoo_sample.cfg文件
# $ZOOKEEPER是安装zookeeper的根目录
cd $ZOOKEEPER/conf
mv zoo_sample.cfg zoo.cfg
3.修改配置文件
里面有一个dataDir
并且在后面添加一些内容:
#在其根目录下创建一个data目录,dataDir的路径就是data的路径
dataDir=/usr/local/zookeeper-3.4.6/data
#配置形式 server.*=ip01:2888:3888 第一个*为数字,可以自己起,但不要重复,ip01是节点ip,后面是两个端口,不要改变
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888