前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Zookeeper】Linux下实现zookeeper开机自动启动搭建集群

【Zookeeper】Linux下实现zookeeper开机自动启动搭建集群

作者头像
阿东
发布于 2023-09-02 09:28:49
发布于 2023-09-02 09:28:49
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

引言

本文将会介绍两种实现方式:添加服务方法添加启动脚本方法,注意Zookeeper启动一个最小集群一般至少需要3台机器完成。

有关个人学习使用的ZK集群的部署过程可以参考:[【Zookeeper】基于3台linux虚拟机搭建zookeeper集群]。

服务脚本和启动脚本备份

个人准备了两份脚本文件,需要的时候可以直接下载上传到服务器,稍微修改配置之后,按照下文的步骤操作,即可快速实现开机自动搭建集群。

image.png

链接:https://pan.baidu.com/s/1AZeQugRjHExsUhtQ93-Feg?pwd=3w2b提取码:3w2b

添加服务方法

1、切换到/lib/systemd/system/目录,创建自启动文件

切换到对应目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /lib/systemd/system/

新建文件 zookeeper.service

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim zookeeper.service

内部添加如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Unit]
Description=zookeeperservice
After=network.target

[Service]
#zookeeper路径
WorkingDirectory=/opt/zookeeper/zk3.5.10/zk3510      
ExecStart=/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start       
User=root
Group=root
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

注意把 WorkingDirectoryExecStart 替换为自己的路径。

2. 重新加载配置信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl daemon-reload

3. 设置自启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable zookeeper.service
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode3 system]# systemctl daemon-reload
[root@zknode3 system]# systemctl enable zookeeper.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /usr/lib/systemd/system/zookeeper.service.

4. 启动服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start zookeeper.service

5. 查看启动状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl status zookeeper.service

由于个人使用了下面介绍的“启动脚本方法”进行自启动,所以这里报错了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode3 system]# systemctl status zookeeper.service
● zookeeper.service - zookeeperservice
   Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Wed 2023-06-28 04:12:27 EDT; 95ms ago
  Process: 1583 ExecStart=/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start (code=exited, status=1/FAILURE)
 Main PID: 1583 (code=exited, status=1/FAILURE)

Jun 28 04:12:27 zknode3 systemd[1]: zookeeper.service: main process exited, code=exited, status=1/FAILURE
Jun 28 04:12:27 zknode3 systemd[1]: Unit zookeeper.service entered failed state.
Jun 28 04:12:27 zknode3 systemd[1]: zookeeper.service failed.

6. 自启动相关命令

重新加载配置信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl daemon-reload

启动 zookeeper :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start zookeeper.service

关掉 zookeeper :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop zookeeper.service

查看进程状态及日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl status zookeeper.service

开机自启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable zookeeper.service

关闭自启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl disable zookeeper.service

启动脚本方法

1、安装zookeeper

可以参考这一篇:[[【Zookeeper】基于3台linux虚拟机搭建zookeeper集群]]。本文的所有操作都以这一篇文章构建的环境为基础。

个人的安装的路径为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[xander@zknode1 zk3510]$ pwd
/opt/zookeeper/zk3.5.10/zk3510

安装目录为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/zookeeper/zk3.5.10/zk3510

启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 xander]# /opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh status

下面的报错是因为只启动了一个节点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 xander]# /opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.

停止:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh stop
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 xander]# /opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

2、添加开机启动脚本zookeeper文件到/etc/rc.d/init.d目录(centos机器)

创建文件zkAuto-start.sh到对应的/etc/rc.d/init.d目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /etc/rc.d/init.d
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch zkAuto-start.sh

修改zkAuto-start.sh文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim zkAuto-start.sh

添加下面的脚本内容,注意相关配置修改为自己的路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
#chkconfig: 2345 10 90
#description: service zookeeper
#processname:zookeeper
 
#环境变量加载
source /etc/profile
source /etc/bashrc

#export JAVA_HOME=/opt/jdk1.8.0_202
export ZOOKEEPER_HOME=/opt/zookeeper/zk3.5.10/zk3510

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;;
    test)  echo "test good";;
    *) echo "requirestart|start-foreground|stop|status|restart|print-cmd";;
esac

最后还有一个关键步骤,那就是这个新建文件并不是可执行文件,我们需要使用chmod命令把这个文件变为可执行文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 755 zkAuto-start.sh

此外如果文件所属人不是root,个人也建议把文件的所属人赋予root。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown root:root zkAuto-start.sh

然后在自己执行尝试一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./zkAuto-start.sh start

3、添加到开机服务

把新建的脚本设置为开启启动服务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chkconfig --add zkAuto-start.sh 

如果出现下面的类似报错,注意#chkconfig: 2345 10 90这一串是否正确编写。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 init.d]# chkconfig --add zkAuto-start.sh 
service zkAuto-start.sh does not support chkconfig
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 init.d]# chkconfig --add zkAuto-start.sh 
[root@zknode1 init.d]# 

设置之后,查看开机启动服务是否新增刚刚构建的脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chkconfig --list

4、重启机器reboot看看,zookeeper就会自动启动了

可以通过再start一次的方式验证是否启动成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start

reboot之后发现启动ZK发现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode1 xander]# /opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 1154

5. 开机自动组成ZK集群

我们把这个开机启动脚本放到其他几台机器对应的目录下面,然后按照上面的步骤执行一遍即可。这样之后只需要启动三台虚拟机就可以自动构建集群了,非常方便。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zknode2 xander]# /opt/zookeeper/zk3.5.10/zk3510/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

写在最后

实现自动构建集群的两种方式操作起来都比较简单,按照自己的需要选择即可。

参考资料

  • Linux下安装zookeeper、配置zookeeper开机自启动 - java先生 - 博客园 (cnblogs.com)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 懒时小窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Docker Hub 公有镜像在国内拉取加速配置
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢。联系本人:ecsboy(微信),136625317(QQ) https://blog.csdn.net/solaraceboy/article/details/88954441
耕耘实录
2019/07/02
5.2K0
docker使用国内镜像(阿里镜像加速)
docker使用国内镜像(阿里镜像加速) 获取镜像加速地址 docker的官方镜像站被大天朝强了,今天发现阿里有镜像加速这个功能,目前好像是在公测中,废话不多说,接下来告诉你怎么操作。 点击连接进
码农笔录
2018/06/29
5.8K0
【Docker】更新docker镜像源
使用 docker 拉取 Docker Hub 上镜像时,可能会由于网络限制,导致下载失败。可以将 docker 的镜像源设置为国内的镜像, 目前支持的镜像源有阿里云和docker 中文站
程序小工
2018/09/12
14.4K0
国内无法拉取Docker镜像了?这些方法拯救你的Docker
这极大地影响了工作效率和开发进度。面对这一困境,本文将为你介绍几种有效的解决方案,帮助你顺利拉取Docker镜像,继续你的开发工作。
星哥玩云
2024/07/05
192K17
国内无法拉取Docker镜像了?这些方法拯救你的Docker
Docker/DockerHub 国内镜像源/加速列表(5月9日更新-长期维护)
本列表为科研工作者提供 docker 镜像网站,网络不好的同学可以使用镜像,或者推荐给身边有需要的朋友使用这些 docker 镜像。
轩源
2025/01/06
182.9K19
Docker/DockerHub 国内镜像源/加速列表(5月9日更新-长期维护)
配置Docker中国官方镜像加速教程
由于国内用户提取Docker镜像文件速度太慢,Docker推出了中国官方镜像加速地址.配置流程非常简单.
用户8851537
2021/07/30
9.3K0
Docker镜像pull不下来最终解决方法
发现是因为docker加速器超时导致pull不下来 查看加速器:/etc/docker/daemon.json
IT小马哥
2020/06/15
95.1K0
Linux安装Docker并配置Docker镜像加速,daemon.json完整配置详解
修改配置文件/etc/docker/daemon.json,进入/etc/docker目录。查看是否有daemon.json文件,没有则执行如下命令创建。
共饮一杯无
2022/11/28
15K0
Linux安装Docker并配置Docker镜像加速,daemon.json完整配置详解
docker安装nacos
或者使用: centos7安装yum_tt_best的博客-CSDN博客_centos7安装yum
关忆北.
2021/12/07
7.9K0
docker安装nacos
Docker配置register加速Docker hub
由于国内访问直接访问docker hub网速比较慢,拉取镜像的时间就会比较长,例如下面这样:
Devops海洋的渔夫
2022/01/17
1.3K0
Docker配置register加速Docker hub
Docker 系列(3) —— 切换 Docker 镜像源
Docker 添加国内镜像源 windows 版 Step1 打开 Docker for windows { "registry-mirrors": [ "https://7bezl
求和小熊猫
2021/02/22
7K0
Docker 系列(3) —— 切换 Docker 镜像源
Docker配置加速器
我们国内使用官方Docker Hub仓库实在是太慢了,很影响效率 使用命令编辑文件: vim /etc/docker/daemon.json 加入下面的数据: docker-cn镜像: { "registry-mirrors": ["https://registry.docker-cn.com"] } https://www.docker-cn.com/registry-mirror 如果你是腾讯云的服务器那么请加入: { "registry-mirrors": ["https://mirro
晓晨
2018/06/22
10.7K1
使用docker Registry快速搭建私有镜像仓库(内附干货)
私有仓库,就是本地(内网环境)组建的一个与公网公共库功能相似的镜像仓库。组建好之后,我们就可以将打包好的镜像提交到私有仓库中,这样内网其它用户也可以使用这个镜像文件。 本文使用官方提供的registry镜像来组建企业内网的私有镜像仓库
民工哥
2020/09/16
11.7K0
Docker镜像加速源配置,目前可用镜像源列举(10月18日更新最新可用)
对于国内频繁使用Docker的用户而言,配置镜像源以加速镜像拉取已成为常规操作。然而,近期我们注意到,一些曾广泛使用的国内镜像站点(包括各大云服务商及高校提供的镜像服务)已停止服务。为了帮助大家解决这一问题,小编经过搜索与测试,整理了一份当前可用的Docker镜像加速站点及加速地址列表(更新至2024年10月18日)。请注意,部分镜像站点可能仅涵盖基础镜像或特定白名单内的镜像,若某加速地址无法满足您的需求,建议尝试切换至其他地址。同时,若您发现列表中的信息侵犯了您的权益,请随时与我联系,以便及时进行处理。
AIGC
2024/10/19
7.9K0
Docker镜像加速源配置,目前可用镜像源列举(10月18日更新最新可用)
使用Docker Registry快速搭建私有镜像仓库
在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,Docker 会去哪儿查找并下载镜像呢?
星哥玩云
2022/07/13
8500
使用Docker Registry快速搭建私有镜像仓库
猫头虎分享:2024最新 Docker 国内可用镜像源仓库地址(11月26日更新)
Hello,朋友们! 在使用 Docker 时,您是否经常遇到拉取镜像缓慢或下载中断的问题?特别是对于我们在国内的开发者,网络条件限制常常导致镜像下载速度令人头疼。为了让您的开发工作更加顺畅,猫头虎特意收集并整理了2024 年最新、可用的国内 Docker 镜像源地址,希望能大幅提升您的 Docker 下载速度 🚀。
猫头虎
2024/11/26
29.3K6
猫头虎分享:2024最新 Docker 国内可用镜像源仓库地址(11月26日更新)
Dcoker 镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
子润先生
2021/06/30
1.6K0
解决因网络原因 Docker 构建镜像太慢的问题
更改 docker 源只能解决 docker pull 时慢的问题,如果需要在构建阶段进行下载,例如 apt update 、pip install 之类的操作则需要替换对应的源。
dandelion1990
2024/03/27
3.4K1
CentOS安装Docker
阿里云的服务器请查看:https://yq.aliyun.com/articles/29941
用户10325771
2023/03/01
7130
Docker安装
安装之前,我们首先确保自己的linux系统内核版本高于3.10,并且系统是64位,才能体验Docker。所以我用的是Centos7.3
py3study
2018/08/02
1.1K0
推荐阅读
相关推荐
Docker Hub 公有镜像在国内拉取加速配置
更多 >
LV.1
中国电科集团大数据工程师
目录
  • 服务脚本和启动脚本备份
  • 添加服务方法
    • 1、切换到/lib/systemd/system/目录,创建自启动文件
    • 2. 重新加载配置信息:
    • 3. 设置自启动
    • 4. 启动服务
    • 5. 查看启动状态
    • 6. 自启动相关命令
  • 启动脚本方法
    • 1、安装zookeeper
    • 2、添加开机启动脚本zookeeper文件到/etc/rc.d/init.d目录(centos机器)
    • 3、添加到开机服务
    • 4、重启机器reboot看看,zookeeper就会自动启动了
    • 5. 开机自动组成ZK集群
  • 写在最后
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档