ZooKeeper自定义数据日志目录

安装版本: zookeeper-3.4.8
问题描述:
ZooKeeper在启动时会将zookeeper.out输出到当前目录,不仅不友好,有时候可能会因为目录权限问题引发一些不必要的麻烦。
脚本分析:
通过查看zkServer.sh脚本可以发现,脚本中没有定义 ZOO_LOG_DIR变量。
114 if [ -z "$ZOOPIDFILE" ]; then
115     ZOO_DATADIR="$($GREP "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e 's/.*=//')"
116     if [ ! -d "$ZOO_DATADIR" ]; then
117         mkdir -p "$ZOO_DATADIR"
118     fi
119     ZOOPIDFILE="$ZOO_DATADIR/zookeeper_server.pid"
120 else
121     # ensure it exists, otw stop will fail
122     mkdir -p "$(dirname "$ZOOPIDFILE")"
123 fi
124 
125 if [ ! -w "$ZOO_LOG_DIR" ] ; then
126 mkdir -p "$ZOO_LOG_DIR"
127 fi
128 
129 _ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.out"
解决方案:
一、导出 ZOO_LOG_DIR环境变量
如:export ZOO_LOG_DIR=/opt/zookeeper-3.4.8/logs
二、完善zkServer.sh脚本
1.修改zoo.cfg文件,增加dataLogDir参数
如:
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
2.修改zkServer.sh脚本,增加 ZOO_LOG_DIR变量赋值
125 ZOO_LOG_DIR="$($GREP "^[[:space:]]*dataLogDir" "$ZOOCFG" | sed -e 's/.*=//')"
126 if [ ! -w "$ZOO_LOG_DIR" ] ; then
127 mkdir -p "$ZOO_LOG_DIR"
128 fi
129 
130 _ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.out"
以上方案,根据自己需要选择其中一个即可。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值