Linux下安装Zookeeper单机伪集群

431 阅读2分钟

前提:已安装JDK环境

Zookeeper下载

链接:pan.baidu.com/s/1BRw6cZpe…

提取码: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节点的所有子节点列表