前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos7 离线安装 zookeeper 并设置服务开机自启 实践笔记 自用

Centos7 离线安装 zookeeper 并设置服务开机自启 实践笔记 自用

作者头像
cookily
发布2021-12-07 15:29:25
1.4K0
发布2021-12-07 15:29:25
举报
文章被收录于专栏:cookilycookily

我使用centos7X64最小化安装

CentOS-7-x86_64-Minimal-1708

启动后状态

参考:zookeeper官方文档

1.先进官网选择个版本,(我当前的最新稳定版本是3.6.2)

2.下载并解压

我们放在/usr/local目录下

代码语言:javascript
复制
cd /usr/local
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz

3.配置zookeeper

3.1.先复制一份配置文件为主配置

代码语言:javascript
复制
cd /usr/local/apache-zookeeper-3.6.2-bin/conf
cp zoo_sample.cfg zoo.cfg

3.2.创建数据存储目录与日志目录

代码语言:javascript
复制
cd /usr/local/apache-zookeeper-3.6.2-bin
mkdir data
mkdir log

3.3.修改数据存储和日志目录

dataLogDir表签手动添加,放到dataDir下面

代码语言:javascript
复制
[root@192-168-50-191 apache-zookeeper-3.6.2-bin]# cd /usr/local/apache-zookeeper-3.6.2-bin/conf
[root@192-168-50-191 conf]# vim zoo.cfg 

修改数据和日志存储位置

代码语言:javascript
复制
dataDir=/usr/local/apache-zookeeper-3.6.2-bin/data
dataLogDir=/usr/local/apache-zookeeper-3.6.2-bin/log

完整配置文件

代码语言:javascript
复制
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/apache-zookeeper-3.6.2-bin/data
dataLogDir=/usr/local/apache-zookeeper-3.6.2-bin/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

4.配置zookeeper环境变量

zookeeper依赖jvm环境

没装jdk**的同学,请移步先安装jdk【[centos7 安装 jdk8 的正确姿势](https://cloud.tencent.com/developer/article/1696448)】的文章**

4.1装完jdk的环境变量

代码语言:javascript
复制
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

4.2把zookeepert的环境变量也加进去

代码语言:javascript
复制
vim /etc/profile
代码语言:javascript
复制
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.2-bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME

刷新环境变量生效

代码语言:javascript
复制
source /etc/profile

5.服务端命令启动

代码语言:javascript
复制
cd /usr/local/apache-zookeeper-3.6.2-bin/bin
./zkServer.sh start

6.客户端连接

代码语言:javascript
复制
./zkCli.sh

以连上,很ok

7.做成系统服务

7.1制作系统服务文件

代码语言:javascript
复制
vim /usr/lib/systemd/system/zookeeper.service 

输入如下内容

代码语言:javascript
复制
[Unit]
Description=zookeeper
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/apache-zookeeper-3.6.2-bin/bin/zkServer.sh start
ExecReload=/usr/local/apache-zookeeper-3.6.2-bin/bin/zkServer.sh restart
ExecStop=/usr/local/apache-zookeeper-3.6.2-bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target

刷新生效

代码语言:javascript
复制
systemctl daemon-reload

先停掉刚才用命令启动的zookeeper

代码语言:javascript
复制
[root@192-168-50-191 bin]# pwd
/usr/local/apache-zookeeper-3.6.2-bin/bin
[root@192-168-50-191 bin]# ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@192-168-50-191 bin]#

7.2用服务启动zookeeper

代码语言:javascript
复制
systemctl start zookeeper.service
systemctl status zookeeper.service
代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl start zookeeper.service
Job for zookeeper.service failed because the control process exited with error code. See "systemctl status zookeeper.service" and "journalctl -xe" for details.
[root@192-168-50-191 bin]# systemctl status zookeeper.service
● zookeeper.service - zookeeper
   Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2020-11-24 09:40:10 CST; 12s ago
  Process: 42613 ExecStart=/usr/local/apache-zookeeper-3.6.2-bin/bin/zkServer.sh start (code=exited, status=1/FAILURE)

11月 24 09:40:10 192-168-50-191 systemd[1]: Starting zookeeper...
11月 24 09:40:10 192-168-50-191 zkServer.sh[42613]: Error: JAVA_HOME is not set and java could not be found in PATH.
11月 24 09:40:10 192-168-50-191 systemd[1]: zookeeper.service: control process exited, code=exited status=1
11月 24 09:40:10 192-168-50-191 systemd[1]: Failed to start zookeeper.
11月 24 09:40:10 192-168-50-191 systemd[1]: Unit zookeeper.service entered failed state.
11月 24 09:40:10 192-168-50-191 systemd[1]: zookeeper.service failed.
[root@192-168-50-191 bin]# 

7.3遇到个小问题,提示我们Error: JAVA_HOME is not set and java could not be found in PATH

问题不大,只是在服务里没拿到环境变量 Error: JAVA_HOME is not set and java could not be found in PATH.

代码语言:javascript
复制
export
代码语言:javascript
复制
[root@192-168-50-191 bin]# export
declare -x CLASSPATH=".:/usr/local/java/jdk1.8.0_211/lib/dt.jar:/usr/local/java/jdk1.8.0_211/lib/tools.jar:/usr/local/apache-zookeeper-3.6.2-bin/lib"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="192-168-50-191"
declare -x JAVA_HOME="/usr/local/java/jdk1.8.0_211"
declare -x LANG="zh_CN.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
。。。。。

7.4拿到我们之前配置的java环境变量declare -x JAVA_HOME="/usr/local/java/jdk1.8.0_211",在if $# -gt 1 下面添加JAVA_HOME

代码语言:javascript
复制
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
代码语言:javascript
复制
vim zkEnv.sh 
代码语言:javascript
复制
[root@192-168-50-191 bin]# pwd
/usr/local/apache-zookeeper-3.6.2-bin/bin
[root@192-168-50-191 bin]# vim zkEnv.sh 
[root@192-168-50-191 bin]# 

7.5再次以服务启动,很ok

代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl start zookeeper
[root@192-168-50-191 bin]# systemctl status zookeeper

7.6允许开机自启

代码语言:javascript
复制
systemctl enable zookeeper
代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl enable zookeeper
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /usr/lib/systemd/system/zookeeper.service.
[root@192-168-50-191 bin]# 

7.7查看启动状态

代码语言:javascript
复制
systemctl status zookeeper
代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl status zookeeper
● zookeeper.service - zookeeper
   Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2020-11-24 09:52:07 CST; 4min 43s ago
 Main PID: 72469 (java)
   CGroup: /system.slice/zookeeper.service
           └─72469 /usr/local/java/jdk1.8.0_211/bin/java -Dzookeeper.log.dir=/usr/local/apache-zookeeper-3.6.2-bin/bin/../logs -Dzookee...

11月 24 09:52:06 192-168-50-191 systemd[1]: Starting zookeeper...
11月 24 09:52:06 192-168-50-191 zkServer.sh[72453]: ZooKeeper JMX enabled by default
11月 24 09:52:06 192-168-50-191 zkServer.sh[72453]: Using config: /usr/local/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
11月 24 09:52:07 192-168-50-191 zkServer.sh[72453]: Starting zookeeper ... STARTED
11月 24 09:52:07 192-168-50-191 systemd[1]: Started zookeeper.
[root@192-168-50-191 bin]# 

7.8查看是否开机启动

代码语言:javascript
复制
systemctl is-enabled zookeeper
代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl is-enabled zookeeper
enabled

7.9取消开机自启动

代码语言:javascript
复制
systemctl disable zookeeper.service
代码语言:javascript
复制
[root@192-168-50-191 bin]# systemctl disable zookeeper.service
Removed symlink /etc/systemd/system/multi-user.target.wants/zookeeper.service.
[root@192-168-50-191 bin]# systemctl is-enabled zookeeper
disabled
[root@192-168-50-191 bin]# 

收工,想了一下还是记录一下的好,虽然记录过程比较麻烦,但是有过程鸭

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考:zookeeper官方文档
  • 1.先进官网选择个版本,(我当前的最新稳定版本是3.6.2)
  • 2.下载并解压
  • 3.配置zookeeper
    • 3.1.先复制一份配置文件为主配置
      • 3.2.创建数据存储目录与日志目录
        • 3.3.修改数据存储和日志目录
        • 4.配置zookeeper环境变量
          • 4.1装完jdk的环境变量
            • 4.2把zookeepert的环境变量也加进去
            • 5.服务端命令启动
            • 6.客户端连接
            • 7.做成系统服务
              • 7.1制作系统服务文件
                • 7.2用服务启动zookeeper
                  • 7.3遇到个小问题,提示我们Error: JAVA_HOME is not set and java could not be found in PATH
                    • 7.4拿到我们之前配置的java环境变量declare -x JAVA_HOME="/usr/local/java/jdk1.8.0_211",在if $# -gt 1 下面添加JAVA_HOME
                      • 7.5再次以服务启动,很ok
                        • 7.6允许开机自启
                          • 7.7查看启动状态
                            • 7.8查看是否开机启动
                              • 7.9取消开机自启动
                              相关产品与服务
                              对象存储
                              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档