ZooKeeper自定义数据日志目录

来源:互联网 发布:日期提醒软件 编辑:程序博客网 时间:2024/06/07 03:24
安装版本:zookeeper-3.4.8
问题描述:
ZooKeeper在启动时会将zookeeper.out输出到当前目录,不仅不友好,有时候可能会因为目录权限问题引发一些不必要的麻烦。
脚本分析:
通过查看zkServer.sh脚本可以发现,脚本中没有定义ZOO_LOG_DIR变量。
114 if [ -z "$ZOOPIDFILE" ]; then115     ZOO_DATADIR="$($GREP "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e 's/.*=//')"116     if [ ! -d "$ZOO_DATADIR" ]; then117         mkdir -p "$ZOO_DATADIR"118     fi119     ZOOPIDFILE="$ZOO_DATADIR/zookeeper_server.pid"120 else121     # ensure it exists, otw stop will fail122     mkdir -p "$(dirname "$ZOOPIDFILE")"123 fi124 125 if [ ! -w "$ZOO_LOG_DIR" ] ; then126 mkdir -p "$ZOO_LOG_DIR"127 fi128 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" ] ; then127 mkdir -p "$ZOO_LOG_DIR"128 fi129 130 _ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.out"
以上方案,根据自己需要选择其中一个即可。
0 0
原创粉丝点击