ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,[1] 提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
1.资料
- github(https://github.com/apache/zookeeper)
- org官方文档(https://zookeeper.apache.org/)
- 最新release 3.5.3(https://github.com/apache/zookeeper/releases)
2.安装
0.安装JDK
1.下载相应版本
2.解压到指定目录
3.单机安装/集群安装
conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
打开zoo.cfg,可以看到默认的一些配置。文章源自很文博客https://www.hinvn.com/很文博客-https://www.hinvn.com/11173.html
- tickTime
时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。 - clientPort
zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。 - dataDir
无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。 - 集群配置,如:
tickTime=2000
dataDir=/home/myname/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.229.160:2888:3888
server.2=192.168.229.161:2888:3888
server.3=192.168.229.162:2888:3888
4.运行
在Windows环境下,直接双击zkServer.cmd即可。在Linux/mac环境下,进入bin目录,执行命令文章源自很文博客https://www.hinvn.com/很文博客-https://www.hinvn.com/11173.html
- > ./zkServer.sh start
5.连接文章源自很文博客https://www.hinvn.com/很文博客-https://www.hinvn.com/11173.html
如果是连接同一台主机上的zk进程,那么直接运行bin/目录下的zkCli.cmd(Windows环境下)或者zkCli.sh(linux环境下),即可连接上zk。
直接执行zkCli.cmd或者zkCli.sh命令默认以主机号 127.0.0.1,端口号 2181 来连接zk,如果要连接不同机器上的zk,可以使用 -server 参数,例如:文章源自很文博客https://www.hinvn.com/很文博客-https://www.hinvn.com/11173.html
- > bin/zkCli.sh -server 192.168.0.1:2181
可以使用以下命令来连接一个zk集群:文章源自很文博客https://www.hinvn.com/很文博客-https://www.hinvn.com/11173.html
- > bin/zkCli.sh -server 192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181
6.关闭
- > ./zkServer.sh stop
评论