安装ZooKeeper 和 常见问题
ZooKeeper 是一个分布式的开源协调服务,用于构建分布式应用程序。
使用 Homebrew 安装,如果没有的话,强烈推荐 Homebrew,安装命令参考如下:
/bin/bash -c"$(curl-fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
一、安装和启动
安装 ZooKeeper:
brew install zookeeper
启动 ZooKeeper 服务:
brew services start zookeeper
停止 ZooKeeper 服务 :
brew services stop zookeeper
测试 ZooKeeper 是否正常启动 :
zkCli
二、常见问题和解决
2.1 配置文件在哪?
使用 Homebrew 安装,一般会在
/usr/local/etc/zookeeper/zoo.cfg
。
2.2 安装路径在哪?
使用 Homebrew 安装,可以通过命令查询:
brew info zookeeper
2.3 如果不想后台运行zookeeper,用完就关,省资源,可以的!
参考上图,不用自己记住命令的!
SERVER_JVMFLAGS="-Dapple.awt.UIElement=true" /usr/local/opt/zookeeper/bin/zkServer start-foreground
2.4 启动时,报错
日志配置问题:
Reported exception:
ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors.
at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:65)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:64)
at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:134)
at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.<clinit>(QuorumPeerMain.java:77)
Caused by: org.xml.sax.SAXParseException; systemId: file:/usr/local/etc/zookeeper/logback.xml; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:59)
问题分析和解决:
/usr/local/etc/zookeeper/logback.xml
文件格式不对,所以需要一个默认正确的配置文件。默认的配置文件在哪?一般检索后,会告诉您在 安装的
/conf
路径等,其实没有那么麻烦哈,
vi logback.xml
内容会告诉你参考的默认配置文件在哪,复制过来就行,例如我的初识配置文件内容是:
/private/tmp/d20240116-22582-3su5e4/default_logback_xml
2.4 启动/停止使用 zkServer 可以吗? 可以
启动 ZooKeeper 服务:
zkServer start
停止ZooKeeper 服务:
zkServer stop
但是更推荐使用
brew services start
。
版权归原作者 South_BJ 所有, 如有侵权,请联系我们删除。