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

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐