前提:已安装JDK环境
Zookeeper下载
提取码:tdjs
解压
> tar -xf apache-zookeeper-3.6.1-bin.tar.gz
修改配置文件
> cd conf
> cp zoo_sample.cfg zoo.cfg
修改参数
dataDir=/owl/data/zookeeper-3.6.1/2180
dataLogDir=/owl/data/zookeeper-3.6.1/2180/log
logDir=/owl/log/zookeeper-3.6.1/2180
admin.enableServer=false
# 集群配置 IP:follower和leader交换消息所使用的端口:选举leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
复制2份,修改zoo.cfg
dataDir=/owl/data/zookeeper-3.6.1/2181
dataLogDir=/owl/data/zookeeper-3.6.1/2181/log
logDir=/owl/log/zookeeper-3.6.1/2181
admin.enableServer=false
# 集群配置 IP:follower和leader交换消息所使用的端口:选举leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
dataDir=/owl/data/zookeeper-3.6.1/2182
dataLogDir=/owl/data/zookeeper-3.6.1/2182/log
logDir=/owl/log/zookeeper-3.6.1/2182
admin.enableServer=false
# 集群配置 server.节点标识=IP:follower和leader交换消息所使用的端口:选举leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
标识节点
在dataDir目录下新建myid,并写入节点ID
> echo 1>/owl/data/zookeeper-3.6.1/2180/myid
> echo 2>/owl/data/zookeeper-3.6.1/2181/myid
> echo 3>/owl/data/zookeeper-3.6.1/2182/myid
建立启停脚本
# start_2180.sh 单节点启动
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh start
# start_2181.sh 单节点启动
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh start
# start_2182.sh 单节点启动
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh start
# stop_2180.sh 单节点关闭
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh stop
# stop_2181.sh 单节点关闭
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh stop
# stop_2182.sh 单节点关闭
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh stop
# start_cluster.sh 集群启动
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh start
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh start
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh start
# stop_cluster.sh 集群关闭
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh stop
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh stop
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh stop
# status_cluster.sh 集群各节点状态查看
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh status
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh status
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh status
# conn_2180.sh 连接单节点
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkCli.sh -server *.*.*.*:2180
# conn_2181.sh 连接单节点
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkCli.sh -server *.*.*.*:2181
# conn_2182.sh 连接单节点
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkCli.sh -server *.*.*.*:2182
# conn_cluster.sh 连接集群
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkCli.sh -server *.*.*.*:2180,*.*.*.*:2181,*.*.*.*:2182
启动Zookeeper集群
> ./start_cluster.sh
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2180/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2181/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2182/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看各节点状态
> ./status_cluster.sh
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2180/bin/../conf/zoo.cfg
Client port found: 2180. Client address: localhost.
Mode: follower
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2181/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2182/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost.
Mode: follower
测试集群
2180节点创建test节点
> ./conn_2180.sh
[zk: ****:2180(CONNECTED) 0] create /test Hello,zookeeper!
Created /test
[zk: ****:2180(CONNECTED) 0] get /test
Hello,zookeeper!
2181节点下查看是否同步成功
> ./conn_2181.sh
[zk: ****:2181(CONNECTED) 0] get /test
Hello,zookeeper!
安装可视化工具
IDEA插件
ZKUI工具
下载ZKUI源码
> git clone git@github.com:DeemOpen/zkui.git
配置连接参数config.cfg
serverPort=9090
zkServer=0.0.0.0:2180,0.0.0.0:2181,0.0.0.0:2182
userSet = {"users": [{ "username":"admin" , "password":"manager","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}
Maven打包
> mvn clean install
部署启动
zkui-2.0-SNAPSHOT-jar-with-dependencies和config.cfg放同级目录
> nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &
使用admin账号登录查看
默认密码为manager
zookeeper命令
create /path data 创建一个名为/path的zNode节点,并包含数据data
delete /path 删除名为/path的zNode节点
exists /path 检查是否存在名为/path的zNode节点
setData /path data 设置名为/path的zNode的数据为data
getData /path 返回名为/path的zNode节点的数据信息
getChildren /path 返回所有/path节点的所有子节点列表