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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
23天前
|
Java Maven
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
66 1
|
2天前
|
Apache Windows
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
|
2天前
|
Apache Windows
apache2 安装时报错 ServerRoot must be a valid directory
apache2 安装时报错 ServerRoot must be a valid directory
|
2天前
|
Apache Windows
windows源码安装apache2 win安装apache 阿帕奇服务器
windows源码安装apache2 win安装apache 阿帕奇服务器
|
23天前
|
Linux Apache
Centos7 安装Apache
安装Apache的步骤
44 6
|
23天前
|
存储 大数据 Apache
深入理解ZooKeeper:分布式协调服务的核心与实践
【5月更文挑战第7天】ZooKeeper是Apache的分布式协调服务,确保大规模分布式系统中的数据一致性与高可用性。其特点包括强一致性、高可用性、可靠性、顺序性和实时性。使用ZooKeeper涉及安装配置、启动服务、客户端连接及执行操作。实际应用中,面临性能瓶颈、不可伸缩性和单点故障等问题,可通过水平扩展、集成其他服务和多集群备份来解决。理解ZooKeeper原理和实践,有助于构建高效分布式系统。
|
23天前
|
弹性计算 Shell Apache
一键安装apache脚本
【4月更文挑战第30天】
20 1
|
23天前
|
负载均衡 Ubuntu 应用服务中间件
Apache(mod_proxy)+Tomcat负载均衡配置
Apache(mod_proxy)+Tomcat负载均衡配置
|
23天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
39 11
|
15天前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

推荐镜像

更多