CentOS7安装部署最新Zookeeper3.8.0集群

CentOS7安装部署最新Zookeeper3.8.0集群,非Docker版教程

本教程主要用于CentOS7操作系统如何安装配置Zookeeper集群环境,非Docker版本教程。

一. 下载

访问官网下载页面下载

这里我选择apache-zookeeper-3.8.0最新版本,但是官方那个页面默认给的是标准版本,如果直接部署会报错:

错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

正常你可能会这么下载:

$ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0.tar.gz

实际正确的地址是多加一个-bin

$ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

说明:

Release artifacts have been changed considerably:
apache-zookeeper-X.Y.Z.tar.gz is standard source-only release,
apache-zookeeper-X.Y.Z-bin.tar.gz is the convenience tarball which contains the binaries

二. Java环境依赖

需要有JAVA环境,可以参考《CentOS7安装部署JDK》文章说明。

三. 部署

  • 解压后复制为三个文件夹
zk-3.8.0-5001
zk-3.8.0-5002
zk-3.8.10-5003

具体操作:

$ tar zxf apache-zookeeper-3.8.0-bin.tar.gz
$ mv apache-zookeeper-3.8.0-bin zk-3.8.0-5001
$ cp -r zk-3.8.0-5001/ zk-3.8.0-5002
$ cp -r zk-3.8.0-5001/ zk-3.8.0-5003
  • 创建独立数据目录存放数据

    可以根据实际需求创建在指定的位置

$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata1/snapshot/
$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata1/log/

$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata2/snapshot/
$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata2/log/

$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata3/snapshot/
$ mkdir  -p /opt/testerzhang/3rd/zookeeper/zkdata/zkdata3/log/
  • 创建独立数据目录节点node
$ echo 1 > /opt/testerzhang/3rd/zookeeper/zkdata/zkdata1/snapshot/myid
$ echo 2 > /opt/testerzhang/3rd/zookeeper/zkdata/zkdata2/snapshot/myid
$ echo 3 > /opt/testerzhang/3rd/zookeeper/zkdata/zkdata3/snapshot/myid
  • 配置文件分别修改(只列出必须修改的地方)

    1.节点1 配置文件 注意server.1server.2server.3里面的端口需要跟clientPort端口不一样,只要端口不被占用即可,一般可以分别加100

$ vi zk-3.8.0-5001/conf/zoo.cfg
initLimit=10
syncLimit=5

# example sakes.
dataDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata1/snapshot/
# the port at which the clients will connect
clientPort=5001
#事务日志指向内存文件系统
dataLogDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata1/log/
server.1=10.10.10.10:5101:5201
server.2=10.10.10.10:5102:5202
server.3=10.10.10.10:5103:5203

# 禁用 AdminServer 服务
admin.enableServer=false
# 如果想使用 AdminServer,默认是会占用8080端口,这里是修改为其他端口
# admin.serverPort=9000

2.节点2 配置文件

$ vi zk-3.8.0-5002/conf/zoo.cfg
initLimit=10
syncLimit=5

# example sakes.
dataDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata2/snapshot/
# the port at which the clients will connect
clientPort=5002
#事务日志指向内存文件系统
dataLogDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata2/log/
server.1=10.10.10.10:5101:5201
server.2=10.10.10.10:5102:5202
server.3=10.10.10.10:5103:5203

# 禁用 AdminServer 服务
admin.enableServer=false
# 如果想使用 AdminServer,默认是会占用8080端口,这里是修改为其他端口
# admin.serverPort=9000

3.节点3配置文件

$ vi zk-3.8.0-5003/conf/zoo.cfg
initLimit=10
syncLimit=5

# example sakes.
dataDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata3/snapshot/
# the port at which the clients will connect
clientPort=5003
#事务日志指向内存文件系统
dataLogDir=/opt/testerzhang/3rd/zookeeper/zkdata/zkdata3/log/
server.1=10.10.10.10:5101:5201
server.2=10.10.10.10:5102:5202
server.3=10.10.10.10:5103:5203

# 禁用 AdminServer 服务
admin.enableServer=false
# 如果想使用 AdminServer,默认是会占用8080端口,这里是修改为其他端口
# admin.serverPort=9000

四.启动

$ cd zk-3.8.0-5001/bin/;sh zkServer.sh start
$ cd -;
$ cd zk-3.8.0-5002/bin/;sh zkServer.sh start
$ cd -;
$ cd zk-3.8.0-5003/bin/;sh zkServer.sh start

写个杀进程脚本,仅供参考

ps -ef|grep zookeeper|grep -v grep|awk '{print $2}'|xargs kill -9

五.验证

  • 连接并创建数据
$ cd zk-3.8.0-5001/bin/
$ ./zkCli.sh -server localhost:5001
[zk: localhost:5001(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:5001(CONNECTED) 1] create /testmynode1 mydata1
Created /testmynode1
[zk: localhost:5001(CONNECTED) 2] quit

使用第二个节点查看

$ ./zkCli.sh -server localhost:5002
[zk: localhost:5002(CONNECTED) 0] ls /
[testmynode1, zookeeper]

本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2022-03-142022-03-14