说明(来源:百度百科)
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
安装配置
使用版本3.4.6
- 下载软件包
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
- 解压软件包
tar -zxvf zookeeper-3.4.6.tar.gz
- 创建配置文件 conf/zoo.cfg
tickTime=2000 #超时
dataDir=/var/lib/zookeeper #日志文件
clientPort=2181 #端口
也可以修改conf/zoo-simple.cfg为zoo.cfg
- 启动zookeeper服务端
bin/zkServer.sh start
- 客户端连接服务器端
bin/zkCli.sh -server 127.0.0.1:2181
连接成功大概是这个样子
Connecting to localhost:2181
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
Welcome to ZooKeeper!
JLine support is enabled
[zkshell: 0]
操作节点
查看节点
[zkshell: 8] ls /
- 创建节点 (语法:create 节点名 值)
[zkshell: 9] create /zk_test my_data - 再次查看
[zkshell: 11] ls /
- 创建节点 (语法:create 节点名 值)
获得节点
[zkshell: 12] get /zk_test
指点节点设值
set /zk_test junk
删除指定节点
delete /zk_test