1. 什么是Zookeeper
大数据集群包括多种类型的服务节点,如何协调各节点之间的服务,需要一种强有力的工具来完成。如果我们把大数据集群中的每个服务节点当做一种动物,那么ZooKeeper便是这里的动物管理员了。借助百度百科的定义,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。
Zookeeper提供的服务功能有:
1) 数据注册功能;
2) 数据查询功能;
3) 数据监听功能;
Zookeeper能用来做什么:
a) 分布式系统中主从协调
b) 分布式系统中配置信息同步
c) 分布式系统中分布式共享锁(Master选举)
d) 分布式系统中负载均衡
e) 分布式系统中明名称服务
2. Zookeeper的数据组织形式
Zookeeper的数据存储形式是key-value, key类型与平时我们看到的类型不太一样,这里是一种类似路径的形式,如”/aa/bb”。 value值是byte[]字节数组类型。 我们称它为ZNode。
ZNode根据其特点不同,可以分为三种类型:持久(persistent)节点、顺序(sequential)节点和临时(ephemeral)节点。
持久节点: 一经创建,就会一直存储,除非客户端主动删除该节点。
顺序节点:客户端在创建此类节点时,会在该节点后拼接上一个序号,类似/aa0000000001,/aa0000000002...
临时节点:创建此类节点时,客户端必须和zookeeper服务端保持心跳。
其中还可以将这三种节点进行组合:
永久节点+顺序节点;
临时节点+顺序节点;
3. Zookeeper安装
3.1下载ZooKeeper
访问: http://zookeeper.apache.org/releases.html,下载ZooKeeper。
解压:
$ tar -zxf zookeeper-3.4.6.tar.gz
$ cd zookeeper-3.4.6
$ mkdir data
3.2 修改配置
进入到解压好的zookeeper-3.4.6/conf目录,重命名zoo_sample.cfg为zoo.cfg
$ mv zoo_sample.cfg zoo.cfg
$ vi zoo.cfg
tickTime = 2000
dataDir = /zookeeper-3.4.6/data
clientPort = 2181
initLimit = 5
syncLimit = 2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
将zookeeper-3.4.6拷贝到其他服务器节点:
$ scp -r zookeeper-3.4.6 node2:$PWD
$ scp -r zookeeper-3.4.6 node3:$PWD
分别在三台机器上执行如下命令:
node1
$ echo 1 > zookeeper-3.4.6/data/myid
node2
$ echo 2 > zookeeper-3.4.6/data/myid
node3
$ echo 3 > zookeeper-3.4.6/data/myid
3.3 启动ZooKeeper服务器
执行以下命令
$ bin/zkServer.sh start conf/zoo.cfg
3.4 停止ZooKeeper服务器
执行完所有操作后,可以使用以下命令停止zookeeper服务器。
$ bin/zkServer.sh stop
1. 命令行客户端
ls 查看节点子节点
create 创建节点
set 修改节点数据
watch 监听节点事件
rmr 删除节点