zookeeper集群和非集群环境搭建
下载zookeeper
到官网下载即可,本次使用最新版本的3.4.13,下载地址
将下载的zk的tar包放到某个目录将,根据个人喜好,如下:
/usr/local/zookeeper-3.4.13
单实例操作
配置zoo.cfg
如果conf
目录下没有zoo.cfg
则将zoo_sample.cfg
复制一份
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
以下为默认配置,根据需要可以进行修改。如 clientPort 客户端连接的端口号。
启动
进入bin目录,直接运行启动脚本: bash zkServer.sh start
或 ./zkServer.sh start
,也可以指定配置文件启动,默认为: zoo.cfg
多实例操作
将conf
目录下的zoo.cfg
配置文件复制三份,如:zoo1.cfg
, zoo2.cfg
, zoo3.cfg
配置如下
修改zoo1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/username/test/zk/data1
dataLogDir=/home/username/test/zk/logs1
clientPort=62181
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:62171:62191
server.2=127.0.0.1:62172:62192
server.3=127.0.0.1:62173:62193
在dataDir
目录中增加myid
文件,并写入序号 1
后续再说明这个含义。
$ echo 1 > /home/username/test/zk/data1/myid
指定配置文件启动,进入bin目录,执行以下命令
$ bash zkServer.sh start zoo1.cfg
修改zoo2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/username/test/zk/data2
dataLogDir=/home/username/test/zk/logs2
clientPort=62182
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:62171:62191
server.2=127.0.0.1:62172:62192
server.3=127.0.0.1:62173:62193
在dataDir
目录中增加myid
文件,并写入序号 2
。
$ echo 2 > /home/username/test/zk/data1/myid
指定配置文件启动,进入bin目录,执行以下命令
$ bash zkServer.sh start zoo2.cfg
修改zoo3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/username/test/zk/data3
dataLogDir=/home/username/test/zk/logs3
clientPort=62183
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=127.0.0.1:62171:62191
server.2=127.0.0.1:62172:62192
server.3=127.0.0.1:62173:62193
在dataDir
目录中增加myid
文件,并写入序号 3
。
$ echo 3 > /home/username/test/zk/data1/myid
指定配置文件启动,进入bin目录,执行以下命令
$ bash zkServer.sh start zoo3.cfg
其他启动命令可以查看帮助 bash zkServer.sh -h
或 ./zkServer.sh -h
ZooKeeper JMX enabled by default
Using config: /home/username/test/zookeeper-3.4.13/bin/../conf/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
说明
- 本集群环境是在单台机器上操作。
- 多台机器操作,仅需要将多实例中
zoo1.cfg
的zk复制到每台机器即可。然后再指定zoo1.cfg
启动。当然配置文件也可以直接用默认的名称zoo.cfg
,这样就不需要指定配置文件了 - 写入序号1,2,3... 这些数字仅代表是服务序号。在集群环境使用,使用方法即: 在
dataDir
目录新建文件myid
,并写入序号echo 序号 > myid
, 对应的每台机器zoo.cfg
配置文件要加入server.序号=xxxx