前面分享了zookeeper的基本知识,下面分享有关zookeeper安装的知识。
1、下载
zookeeper的官网是:https://zookeeper.apache.org/
在官网上找到下载链接,
这里使用的是二进制安装包,使用的是3.7.0的版本。
2、安装
2.1、环境
os:我这里是在虚拟机环境中的centos7-64进行安装。
JDK:zookeeper需要JDK的支持,需要事先配置好java的环境变量。
2.2、安装
zookeeper的安装可以分为单机版和集群版,单机版是只有一个节点,集群版使用三个节点。
2.2.1、单机版
2.2.1.1、修改配置
单机版是只有一个节点的zookeeper进程,把下载好的安装包上传到对应得linux服务器目录上,对文件进行解压,解压后的文件如下,
这里有两个比较重要的目录bin和conf,bin目录存放的是zookeeper启动脚本,conf下存放的是配置文件。首先修改配置文件,在conf下有三个文件,
zoo_sample.cfg是一个样例文件,zookeeper启动的时候默认使用的是zoo.cfg,这里从zoo_sample.cfg复制一个名为zoo.cfg即可,然后修改zoo.cfg文件,整个zoo.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 ## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
我这里仅修改了下面的配置,
dataDir=/home/dev/datas/zookeeper3.7.0/single
2.2.1.2、启动
在zookeeper的目录下,执行下面的命令
bin/zkServer.sh start
看到下面的内容,说明已经启动成功
2.2.2、集群版
2.2.2.1、修改配置
由于我这里没有多余的物理机,所以在一台虚拟机上部署多个zk进程,配置如下,
地址 | myid | 对外端口 | 通信端口 | 选举端口 | dataDir |
本机 | 1 | 2182 | 2382 | 2482 |
/home/dev/datas/zookeeper3.7.0/cluster/node1 |
本机 | 2 | 2183 | 2383 | 2483 |
/home/dev/datas/zookeeper3.7.0/cluster/node2 |
本机 | 3 | 2184 | 2384 | 2484 |
/home/dev/datas/zookeeper3.7.0/cluster/node3 |
有了上面的配置,只需要在conf文件夹下,分别创建3个配置文件夹,然后放置zoo.cfg文件即可,分别按照上面的配置进行修改,在启动的时候分别制定不同的配置文件,
然后分别修改node1、node2、node3中的zoo.cfg文件,修改的配置项如下,node1
dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node1
clientPort=2182
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484
node2
dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node2
clientPort=2183
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484
node3
dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node3
clientPort=2184
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484
之后再dataDir目录下还要建立一个myid的文本文件,文件的内容分别为node1下为1、node2下为2、node3下为3
2.2.2.2、启动
经过了上面对集群模式下的配置,下面启动集群中的3个节点,方式如下
bin/zkServer.sh --config conf/node1 start
看下面的图片,
按照上面的方式分别启动node1、node2、node3节点。
3、测试
上面,我们分别使用单机版和集群版按照了zookeeper,那么怎么测试是否安装成功
3.1、单机版
在单机版下,如果没有改端口直接使用即可,
bin/zkCli.sh
出现下面的画面说明启动成功
3.2、集群版
3.2.1、验证单节点是否启动成功
在集群模式下,由于没有使用默认的端口,这里需要使用下面的命令,
#登录node3节点
bin/zkCli.sh -server 127.0.0.1:2183
3.2.2、验证集群是否正常同步数据
对于集群测试,还可以在node1上新建目录,然后在node3上检查是否存在该目录
看node3下的目录
这样就可以看出zookeeper集群是正常的。
3.2.3、验证集群状态
可以通过查看集群的命令查看整个集群的状态
bin/zkServer.sh --config conf/node1 status
看下node2的状态
以上几种方式说明zookeeper集群正常。
有不正之处,欢迎指正。参考:
https://blog.csdn.net/dandandeshangni/article/details/80558383
https://www.cnblogs.com/8899man/p/5710191.html