1、zookeeper 是用来保证zk集群的数据的事务的一致性
2、集群搭建
解压
tar -zxvf zookeeper.gz配置环境变量
ZK_HOME=/opt/zk
PATH =.:$ZK_HOME/bin:$PATH
修改文件
- 创建目录:mkdir /opt/zk/data
- 把zoo_sample.cfg 复制并且重名民为zoo.cfg
- 修改zoo.cfg
- zooDir = /opt/zk/data
- server.0=m:2888:3888
- server.1=s1:2888:3888
- server.2=s2:2888:3888
- server.3=s3:2888:3888
- 在namenode节点m上的/opt/zk/data 目录 创建文件 myid 值为 0
- s1上的/opt/zk/data 目录 创建文件 myid 值为1
- s2上的/opt/zk/data 目录 创建文件 myid 值为 2
- s3上的/opt/zk/data 目录 创建文件 myid 值为 3
每个节点启动
zkServer.sh start每个节点验证
zkServer.sh status //follower leader
3、zookeeper角色
- leader 领导者:负责投票的发起和决议,更新系统状态
- leaner 学习者 :
- (observer 观察者)连接client的请求,将请求转发给leader。不参与选主投票,同步更新leader状态,其目的为系统的可拓展性和高效率的读写
- (flower跟随者):用于连接客户端请求并返回客户端结果,参与选主投票
- client 客户端:请求发起方
4、zookeeper在Hadoop及hbase中具体作用
Hadoop有NameNode,HBase有HMaster,为什么还需要zookeeper,下面给大家通过例子给大家介绍。
一个Zookeeper的集群中,3个Zookeeper节点.一个leader,两个follower的情况下,停掉leader,然后两个follower选举出一个leader.获取的数据不变.我想Zookeeper能够帮助Hadoop做到:
Hadoop,使用Zookeeper的事件处理确保整个集群只有一个NameNode,存储配置信息等.
HBase,使用Zookeeper的事件处理确保整个集群只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等.