Linux安装Zookeeper

前提

服务器安装好了jdk1.8

下载zookeeper

下载地址:

安装zookeeper

创建并进入到目录:mkdir -p /usr/local/zk && cd /usr/local/zk
将下载包上传到该目录或者直接下载
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
解压:tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz

配置zookeeper

进入到zookerper/conf目录:cd apache-zookeeper-3.6.2-bin/conf
执行命令:cp zoo_sample.cfg zoo.cfg
执行命令(可以不修改zoo.cfg,使用默认配置就行):vim zoo.cfg,保存并退出;

配置文件说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# The number of milliseconds of each tick
# tickTime:CS通信心跳数
# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000

# The number of ticks that the initial
# synchronization phase can take
# initLimit:LF初始通信时限
# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5

# The number of ticks that can pass between
# sending a request and getting an acknowledgement
# syncLimit:LF同步通信时限
# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# dataDir:数据文件目录
# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/data/soft/zookeeper-3.4.12/data

# dataLogDir:日志文件目录
# Zookeeper保存日志文件的目录。
dataLogDir=/data/soft/zookeeper-3.4.12/logs

# the port at which the clients will connect
# clientPort:客户端连接端口
# 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
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 保留数量3
autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature 清理时间间隔1小时
autopurge.purgeInterval=1

# 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
# 这个配置项的书写格式比较特殊,规则如下:

# server.N=YYY:A:B

# 其中N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。

启动ZooKeeper

进入bin目录:cd apache-zookeeper-3.6.2-bin/bin

启动命令:./zkServer.sh start

停止命令:./zkServer.sh stop  

重启命令:./zkServer.sh restart

状态查看命令:./zkServer.sh status

查看zookeeper进程:ps -ef |grep zookeeper

配置zk环境变量(可以不用配置)

  • 编辑;vim /etc/profile
  • 将下面的配置信息加入,保存并退出:
    1
    2
    export ZOOKEEPER_HOME=/usr/local/zk/apache-zookeeper-3.6.2-bin/
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
  • 环境变量生效:source /etc/profile

伪集群模式(同一主机启动多个zookeeper并组成集群)

TODO

集群模式

TODO

ZooKeeper简单操作

用客户端连接ZooKeeper服务

1
2
3
cd apache-zookeeper-3.6.2-bin/bin
# zkCli.sh 默认连接到 127.0.0.1:2181
zkCli.sh -server 127.0.0.1:2181

执行后可以看到:

1
2
3
……
Welcome to ZooKeeper!
……

使用ls命令来查看当前 ZooKeeper 中所包含的内容:

1
ls /

创建了一个新的 znode 节点 “zk” 以及与它关联的字符串

1
create /zk myData

获取znode节点 “zk”

1
get /zk

删除znode节点 “zk”

1
delete /zk

退出客户端

1
quit

参考

https://my.oschina.net/jackieyeah/blog/709130

Linux 安装 zkui

下载

下载地址:https://github.com/zifangsky/zkui/releases

修改配置

下载zkui-2.0.zip,并修改config.cfg配置文件
image.png

运行:

Windows系统点击运行start.bat脚本,Linux系统则相应执行start.sh即可

访问WEB客户端并使用:

访问:http://127.0.0.1:6060/,并使用admin/admin登录。