大纲
前言
本文将介绍如何在 Linux 上手动安装 ZooKeeper 服务,适用于 Centos/Debian/Ubuntu 等发行版。
准备工作
特别注意
由于 ZooKeeper 的运行需要依赖 JDK,因此需要提前将 JDK 安装好。
1 2 3 4 5 6 7 8 9 10 11
| $ wget https://download.java.net/openjdk/jdk11.0.0.2/ri/openjdk-11.0.0.2_linux-x64.tar.gz
$ sudo mkdir -p /usr/lib/jvm
$ sudo tar -xvf openjdk-11.0.0.2_linux-x64.tar.gz -C /usr/lib/jvm
$ sudo mv /usr/lib/jvm/jdk-11.0.0.2 /usr/lib/jvm/openjdk-11.0.0.2
|
1 2 3 4 5 6 7
| $ vi ~/.bashrc export JAVA_HOME=/usr/lib/jvm/openjdk-11.0.0.2 export PATH=$PATH:$JAVA_HOME/bin
$ source ~/.bashrc
|
下载文件
- 浏览器访问 ZooKeeper 的官网,点击下载页面的跳转链接
- 选择合适的 ZooKeeper 版本进行下载,一般下载二进制版本(比如
apache-zookeeper-3.5.7-bin.tar.gz
)
安装步骤
开始安装
1 2 3 4 5 6 7 8 9 10 11
| $ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz
$ sudo tar -xvf apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local
$ sudo mv /usr/local/apache-zookeeper-3.5.7-bin /usr/local/zookeeper-3.5.7
$ sudo chmod -R 777 /usr/local/zookeeper-3.5.7
|
配置修改
核心配置文件
1 2
| $ mkdir /usr/local/zookeeper-3.5.7/data
|
1 2 3 4 5
| $ cd /usr/local/zookeeper-3.5.7/conf
$ cp zoo_sample.cfg zoo.cfg
|
1 2 3 4
| $ vi zoo.cfg
dataDir=/usr/local/zookeeper-3.5.7/data
|
日志配置文件
若需要更改 ZooKeeper 存放日志文件的目录,可以在 conf/log4j.properties
配置文件中指定日志目录。
1 2
| $ mkdir /usr/local/zookeeper-3.5.7/logs
|
1 2 3 4 5 6 7
| $ cd /usr/local/zookeeper-3.5.7/conf
$ vi log4j.properties
zookeeper.log.dir=/usr/local/zookeeper-3.5.7/logs
|
服务管理
1 2
| $ cd /usr/local/zookeeper-3.5.7/bin
|
1 2 3 4 5 6 7 8
| $ ./zkServer.sh start
$ ./zkServer.sh start-foreground
$ ps -aux|grep zookeeper
|
安装验证
1 2 3 4 5
| $ cd /usr/local/zookeeper-3.5.7/bin
$ ./zkCli.sh -server 127.0.0.1:2181
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| [zk: 127.0.0.1:2181(CONNECTED) 1] create /test "test"
[zk: 127.0.0.1:2181(CONNECTED) 2] ls / [test-node, zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 3] get /test 123456 cZxid = 0x4 ctime = Fri Feb 22 02:27:43 UTC 2019 mZxid = 0x4 mtime = Fri Feb 22 02:27:43 UTC 2019 pZxid = 0x4 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x1000a766c5e0001 dataLength = 6 numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 4] quit
|
配置参数说明
在 Zookeeper 的 zoo.cfg
配置文件中,各个参数的含义如下:
tickTime = 2000
:通信心跳时间,Zookeeper 服务器与客户端的心跳时间,单位是毫秒。
initLimit = 10
:LF 初始通信时限,Leader 和 Follower 初始连接时能容忍的最多心跳数(tickTime
的数量)。
syncLimit = 5
:LF 同步通信时限,如果 Leader 和 Follower 之间的未通信时间超过 syncLimit * tickTime
,Leader 会认为 Follwer 挂掉,并从服务器列表中删除 Follwer。