apache-zookeeper - Zookeeper dataLogDir 配置无效
问题描述
我建立了一个zookeeper集群,它运行得很好。但是我发现我在zoo.cfg中设置的日志目录好像不行。下面是我关于日志目录和快照目录的配置。
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/zookeeper/logs
但是,文件 zookeeper.out 生成在/var/lib/zookeeper
而不是辅助日志文件夹/var/lib/zookeeper/logs
中。
我多次在每台服务器上重新启动 zookeeper,但没有任何意义。
解决方案
发生这种情况是因为zookeeper.out与其他类型的日志(应用程序日志)相关,而不是与事务日志相关的dataLogDir指定的日志。
dataLogDir
此选项将指示机器将事务日志写入dataLogDir 而不是 dataDir。这允许使用专用的日志设备,并有助于避免日志记录和快照之间的竞争。
通过检查zkServer.sh你会看到zookeeper.out与 _ZOO_DAEMON_OUT 相关,它依赖于 zkEnv.sh 默认设置的ZOO_LOG_DIR。根据您的环境和 zookeeper (ZK) 版本,zookeeper.out文件可能位于不同的位置(根据此答案,即使在启动 ZK 的工作目录中)。对于应用程序日志记录,您最好配置log4j.properties文件;那是因为 ZK 使用log4j。
推荐阅读
- javascript - 我的引导程序 4 轮播不会显示图像
- sql - 试图知道在oracle外部应用程序中执行了哪些表
- laravel - laravel 模型中的日期计算
- android - ReactNative:权限总是返回“不再询问”
- sql - 是否可以使用 groovy 脚本自动比较数据库结果?
- android - 在 kotlin 的伴随对象中访问应用程序上下文
- javascript - SVG的
元素的高度错误 - c# - 如何使用 c# webmethod 从通过 ajax 请求传递的 base64 字符串保存图像
- middleware - 连接到 weblogic 服务器时出现错误“无法找到或加载主类 weblogic.Admin”
- php - 如何将命名的 PHP $_GET 参数转换为数字索引数组?