ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)

本文涉及的产品
云原生网关 MSE Higress,422元/月
日志服务 SLS,月写入数据量 50GB 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)

使用的安装文件是apache-zookeeper-3.6.2-bin.tar.gz,以下内容均以此版本进行说明。

1.安装

# 在安装文件目录解压并移动到/usr/local/zookeeper目录下
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
mv ./apache-zookeeper-3.6.2-bin/ /usr/local/zookeeper

2.配置

配置环境变量:配置环境变量的方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。

vim /etc/profile.d/my_env.sh
# 1.添加 ZOOKEEPER_HOME 和 PATH
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 2.使得配置的环境变量立即生效:
    # 首先是要赋权限【只操作一次就行】
    chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh
# 3.验证是否生效
echo ${ZOOKEEPER_HOME}
/usr/local/zookeeper

zookeeper配置文件:

# 进入${ZOOKEEPER_HOME}/conf/ 目录下 拷贝配置样本并进行修改 
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

# ------------以下为配置文件内容------------
# 指定数据存储目录和日志文件目录(目录不用预先创建)
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
# 以下使用默认值
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181

配置项说明:

  • dataDir:zk用于存储内存数据库快照的目录。如果不指定dataLogDir参数,则数据库更新的事务日志也将会存储在该目录下。
  • dataLogDir:指定zk事务日志的存储目录。
  • tickTime: zk中使用的基本时间单元,单位为毫秒,用于控制心跳和超时,比如session超时:N*tickTime。更低的tickTime值可以更快的发现超时问题。
  • initLimit:用于集群,zk集群中follower初始化连接到leader时,最长能忍受多少个tickTime,以tickTime的倍数来表示,默认值为10,即为20s。
  • syncLimit:用于集群,用于配置leader和follower间进行心跳检测的最大超时时间。如果在设置的时间内followers无法与leader进行通信,那么follower将会被丢弃。以tickTime的倍数来表示,默认值为5,即10s。
  • clientPort:服务器监听客户端连接的端口,默认值为2181
  • maxClientCnxns:限制单个客户端与单台服务之间的并发连接数,默认值为60,设置为0则不限制。
  • autopurge.snapRetainCount:配置zk在自动清理的时候需要保存的数据文件快照的数量和对应的事务日志文件,默认为3。
  • autopurge.purgeInterval:和autopurge.snapRetainCount配置使用,用于配置zk自动清理文件的频率,默认为1小时,即默认开启自动清理功能,设置为0,则表示禁用清理功能。

3.启动

命令启动:

# zookeeper服务命令
zkServer.sh [--config <conf-dir>] {
   start|start-foreground|stop|version|restart|status|print-cmd}
# 启动
zkServer.sh start

配置开机启动:

# 1.添加文件
vim /etc/rc.d/init.d/zookeeper
# ------------文件内容------------
# 如果有Kafka服务那么chkconfig的配置参数启动服务的优先等级要高于Kafka停止服务的优先等级要低于Kafka
#!/bin/bash
# chkconfig: 2345 80 12
# description: service zookeeper
# processname: zookeeper
export JAVA_HOME=/usr/local/java
ZOOKEEPER_HOME=/usr/local/zookeeper
case  "$1"   in
     start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;;
     start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;;
     stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;;
     status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;;
     restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;;
     upgrade) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;;
     print-cmd) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;;
     *) echo "require start|start-foreground|stop|status|restart|print-cmd";;
esac

# 2.赋执行权并添加开启开机自启
chmod +x /etc/rc.d/init.d/zookeeper
chkconfig --add /etc/rc.d/init.d/zookeeper
chkconfig zookeeper on
# 查看zookeeper是否添加成功
chkconfig --list zookeeper
zookeeper       0:off   1:off   2:on    3:on    4:on    5:on    6:off

# 3.服务命令
service zookeeper start
service zookeeper stop
...

# 如果防火墙未关闭则需要开启外网端口
firewall-cmd --zone=public --add-port=2181/tcp --permanent && firewall-cmd --reload

4.验证

由于已经配置过环境变量,直接使用下面命令启动即可:

[root@tcloud ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

由于添加了service服务,也可使用服务命令【本质是一样的】:

[root@tcloud ~]# service zookeeper start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

使用 jps 验证进程是否已经启动,出现 QuorumPeerMain 则代表启动成功:

[root@tcloud /]# jps
15934 QuorumPeerMain

也可以登录客户端进行测试:

[root@tcloud /]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] version
ZooKeeper CLI version: 3.6.2--803c7f1a12f85978cb049af5e4ef23bd8b688715, built on 09/04/2020 12:44 GMT

自启动测试:

# 重启
reboot
# 开机后查看zookeeper状态
Last login: Thu Mar 31 08:56:56 2022
[root@tcloud ~]# service zookeeper status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone

至此,zookeeper单机版部署成功。

5.chkconfig配置说明

Linux chkconfig 命令用于检查,设置系统的各种服务。这是 Red Hat 公司遵循 GPL 规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

# 语法
chkconfig [--add][--del][--list][系统服务]chkconfig [--level <等级代号>][系统服务][on/off/reset]
  • --add  增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
  • --del  删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据。
  • --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
# 列出 chkconfig 所有的服务的情况或serviceName的服务情况
chkconfig --list [serviceName]
# 开启服务
chkconfig serviceName on 
# 关闭服务
chkconfig serviceName off

系统服务配置文件里的# chkconfig: 2345 10 90三个参数说明:

第一个参数,指定服务的运行级别。

0 关机
1 单用户模式
2 无网络支持的多用户模式
3 有网络支持的多用户模式
4 保留,未使用
5 有网络支持有X-Window支持的多用户模式
6 重新引导系统,即重启

第二个参数,指定启动服务的优先等级。第三个参数,指定停止服务的优先等级。特别注意:数值越大等级越低。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
25天前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
35 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
22天前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
94 7
|
25天前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
38 2
|
3天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
25天前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
71 1
|
28天前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
31 4
|
28天前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
32 3
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2月前
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)

相关实验场景

更多

推荐镜像

更多