linux zookeeper 自启动服务

本文详细介绍了如何将Zookeeper配置为服务,从而实现自动化管理和远程操作,避免了现场维护的需求,简化了运维流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中用到zookeeper,运维部门要重启机器,要项目组的人现场维护,哥表示懒得到现场,直接将zookeeper做成服务。

首先配置你的zookeeper.

下载,解压( 我的放在/usr/zookeeper下),配置zoo.cfg

zoo.cfg配置如下:

# 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.
dataDir=/usr/zookeeper
# the port at which the clients will connect
clientPort=2181

 在/usr/zookeeper下创建目录logs,mkdir /usr/zookeeper/logs

 

#cp /usr/zookeeper/zookeeper-3.3.6/bin/zkServer.sh /etc/rc.d/init.d/zookeeper

#cp /usr/zookeeper/zookeeper-3.3.6/bin/zkEnv.sh /etc/rc.d/init.d/zkEnv

sudo ln -s /etc/rc.d/init.d/zookeeper /usr/zookeeper/zookeeper-3.3.6/bin/zkServer.sh

 

编辑/etc/rc.d/init.d/zookeeper,修改如下:

#1.注释掉

# Only follow symlinks if readlink supports it
#if readlink -f "$0" > /dev/null 2>&1
#then
#  ZOOBIN=`readlink -f "$0"`
#else
#  ZOOBIN="$0"
#fi

 

#2.ZOOBINLINK指向/etc/rc.d/init.d/zookeeper

ZOOBINLINK=/etc/rc.d/init.d/zookeeper

#3.指向/usr/zookeeper/zookeeper-3.3.6/bin

ZOOBIN=/usr/zookeeper/zookeeper-3.3.6/bin
ZOOBINDIR=$ZOOBIN

#去掉后缀sh
. "$ZOOENVDIR"/zkEnv

 

修改/usr/zookeeper/zookeeper-3.3.6/bin/zkEnv.sh

if [ "x$ZOOCFGDIR" = "x" ]
then
    if [ -d "/etc/zookeeper" ]
    then
        ZOOCFGDIR="/etc/zookeeper"
    else
        #ZOOCFGDIR="$ZOOBINDIR/../conf"
        ZOOCFGDIR="$ZOOBIN/../conf"
    fi
fi


if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    #ZOO_LOG_DIR="."
     ZOO_LOG_DIR="$ZOOBIN/../logs"
fi

 

配置启动级别

ln -s /etc/init.d/zookeeper /etc/rc3.d/K30zookeeper

ln -s /etc/init.d/zookeeper /etc/rc3.d/S70zookeeper

ln -s /etc/init.d/zookeeper /etc/rc5.d/K30zookeeper

ln -s /etc/init.d/zookeeper /etc/rc5.d/S70zookeeper

 

为所有用户添加执行权限

chmod -f 777 /etc/init.d/zookeeper
chmod -f 777 /etc/rc3.d/S70zookeeper

 验证:

service zookeeper start

service zookeeper stop

service zookeeper status

 

 

要在Linux系统中设置Zookeeper自启动,可以按照以下步骤进行操作: 1.Zookeeper安装目录下的conf目录中的zoo_sample.cfg文件复制一份并重命名为zoo.cfg。 2. 修改zoo.cfg文件中的dataDir和clientPort参数,分别指定Zookeeper数据存储目录和客户端连接端口。 3. 在/etc/init.d/目录下创建zookeeper文件,并将以下脚本复制到文件中: ``` #!/bin/sh # # zookeeper Startup script for the Apache ZooKeeper server # # chkconfig: - 80 20 # description: ZooKeeper is a distributed coordination service # that helps manage and synchronize distributed systems. ### BEGIN INIT INFO # Provides: zookeeper # Required-Start: $network $remote_fs $named # Required-Stop: $network $remote_fs $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Apache ZooKeeper server # Description: Apache ZooKeeper is a distributed coordination service that helps manage and synchronize distributed systems. ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 ZOO_BIN="/usr/local/java/zookeeper-3.4.5/bin" ZOO_DATA_DIR="/var/lib/zookeeper" ZOO_LOG_DIR="/var/log/zookeeper" ZOO_CONF="/usr/local/java/zookeeper-3.4.5/conf/zoo.cfg" ZOO_USER="zookeeper" RETVAL=0 start() { echo -n $"Starting ZooKeeper: " daemon --user ${ZOO_USER} ${ZOO_BIN}/zkServer.sh start ${ZOO_CONF} > /dev/null 2>&1 RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zookeeper return $RETVAL } stop() { echo -n $"Stopping ZooKeeper: " daemon --user ${ZOO_USER} ${ZOO_BIN}/zkServer.sh stop ${ZOO_CONF} > /dev/null 2>&1 RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zookeeper return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" RETVAL=2 esac exit $RETVAL ``` 4. 修改zookeeper文件中的ZOO_BIN、ZOO_DATA_DIR、ZOO_LOG_DIR和ZOO_CONF参数,分别指定Zookeeper安装目录、数据存储目录、日志存储目录和配置文件路径。 5.zookeeper文件设置为可执行文件并添加到系统服务中: ``` chmod +x /etc/init.d/zookeeper chkconfig --add zookeeper ``` 现在,Zookeeper就会在Linux系统启动时自动启动了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值