欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

zookeeper安装与配置

程序员文章站 2022-05-14 22:57:18
...

介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。
参考:http://blog.csdn.net/u013068377/article/details/52620647
http://blog.csdn.net/xuxiuning/article/details/51218941
zookeeper官方文档:https://zookeeper.apache.org/doc/trunk/
最好还是读官方文档,很详细。

安装

这里以Linux为例。
zookeeper官网:https://zookeeper.apache.org/
从官网下载最新稳定版本,这里测试版本为3.4.9.

下载后,解压缩

tar -xvf zookeeper-3.4.9.tar.gz

注意:zookeeper运行需要依赖java环境,所以需要配置好java环境。

单机配置

ZOOKEEPERHOMEZOOKEEPER_HOME/conf目录下,新建zoo.cfg文件。
内容如下:

tickTime=2000
dataDir=/var/zookeeper
clientPort=2181

具体的配置参数的含义后面介绍。

配置完毕后,在ZOOKEEPERHOMEZOOKEEPER_HOME执行下面的命令启动zookeeper

./bin/zkServer.sh start &

伪集群配置

参考“集群配置”,伪集群实际上是在一台机器部署多个zookeeper实例来构建集群,因为是同一台机器,所以各个zookeeper实例的端口与dataDir不同。
配置参考:

tickTime=2000 
dataDir=/var/zookeeper/ 
clientPort=2181 
initLimit=5 
syncLimit=2 
server.1=localhost:2887:3887 
server.2=localhost:2888:3888 
server.3=localhost:2889:3889

集群配置

为了获得可靠的zookeeper服务,实际使用应该部署zookeeper集群。只要多于半数的zookeeper服务OK,那么整个zookeeper服务也是OK的。
而且,部署时最好部署奇数台zookeeper服务。

在每个zookeeper实例的dataDir参数指定的目录中,创建一个名为myid的文件,文件的内容指定自身的id值。
假设部署3台zookeeper构成的集群,分别命名为server1,server2,server3,那么server1的myid的内容就是1,server2的myid的内容就是2,等等…
每个zookeeper的conf目录中,新建zoo.cfg,内容如下:

tickTime=2000 
dataDir=/var/zookeeper/ 
clientPort=2181 
initLimit=5 
syncLimit=2 
server.1=server1:2888:3888 
server.2=server2:2888:3888 
server.3=server3:2888:3888

server.id=host:port:port,指示了集群中所有zookeeper。第一个port是follower与leader通信的端口,第2个port是进行leader选举的端口。

zookeeper配置参数

tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为2个心跳时间
initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
clientPort:服务的监听端口
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)
dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。

server.A=B:C:D:
A是一个数字,表示这个是第几号服务器,B是这个服务器的ip地址
C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用

相关标签: zookeeper