无法在Apache Kafka中启动Zookeeper服务器

时间:2017-05-30 13:15:11

标签: java apache-kafka apache-zookeeper

我在kafka_home/bin/windows(正如建议here)。 然后我得到了与here相同的问题,它建议从kafka家中启动程序。 从Windows文件夹启动时出现此错误:

INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2014-08-21 11:53:55,748] FATAL Invalid config, exiting abnormally (org.apache.zookeeper.server.quorum.QuorumPeerMain)
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing config/zookeeper.properties
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:110)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:99)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)
Caused by: java.lang.IllegalArgumentException: config/zookeeper.properties file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:94)
    ... 2 more
Invalid config, exiting abnormally

有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

使用相对路径config/zookeeper.properties指定配置文件的默认位置。

Kafka的目录树看起来有点像这样:

bin/
  |
  +-- zookeeper-server-start.sh
  |
  +-- windows/
        |
        +-- zookeeper-server-start.bat
config/
  |
  +-- zookeeper.properties

因此,如果您确实在bin/windows/目录中,然后从那里运行zookeeper-server-start.bat,则ZK启动脚本将在bin/windows/config/zookeeper.properties处有效地查找其配置,该配置不存在。

查看现有答案(Apache Kafka error on windows - Couldnot find or load main class QuorumPeerMain)以获取启动ZK启动脚本的正确命令,其中示例命令行明确定义了配置文件的查找位置:

$ cd bin/windows
$ zookeeper-server-start.bat ../../config/zookeeper.properties

# The below will NOT work (explanation is above)
$ cd bin/windows
$ zookeeper-server-start.bat

答案 1 :(得分:1)

这里的问题是没有正确测试Windows bat脚本。 此外,文档还没有提到安装scala,java和设置zookeer和Kafka所依赖的ENV变量等先决条件。

以下是我为解决问题所做的工作,然后是zookeeper,kafka服务器已正常启动,运行正常。 1.安装scala并设置env变量SCALA_HOME,SCALA_VERSION,SCALA_BINARY_VERSION。将SCALA_HOME \ bin添加到PATH。 2.安装java并设置JAVA_HOME并将JAVA_HOME \ bin添加到PATH。 3.更正文件\ bin \ windows \ zookeeper-server-start.bat和\ bin \ windows \ kafka-run-class.bat BY    用%CD%替换所有条目的字符串%~dp0 4. CD并运行启动ZOOKEER的命令:bin \ windows \ zookeeper-server-start.bat config \ zookeeper.properties     例如 - > D:\ apps \ kafka_2.12-0.11.0.1> bin \ windows \ zookeeper-server-start.bat config \ zookeeper.properties     动物园管理员应该正确启动 5 CD并运行启动KAFKA服务器的命令:bin \ windows \ kafka-server-start.bat config \ server.properties     例如 - > D:\ apps \ kafka_2.12-0.11.0.1> bin \ windows \ kafka-server-start.bat config \ server.properties     kafka服务器/经纪人应该正常启动 6.然后,我们可以测试创建主题并列出kafka快速入门指南中提到的主题:https://kafka.apache.org/quickstart

D:\apps\kafka_2.12-0.11.0.1>bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test2
Created topic "test2".

D:\apps\kafka_2.12-0.11.0.1>bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
test
test2

enter image description here

答案 2 :(得分:1)

我从@MiChael G Noll 找到答案很有帮助。关于 Windows,我建议如下:

通过[记住导航到kafka目录的根目录来启动Zookeeper。 windows根目录下的内容是bin、config、libs、logs等]:

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

通过 .\bin\windows\kafka-server-start.bat .\config\server.properties 启动 kafka 服务器

当您执行所有这些操作时,请注意,对于 Windows,我们导航到 .bin\windows,从那里我们调用了相应的 .bat 文件。

同样,当您想创建主题或分区时,请记住,在您的 cmd 终端中,您是从正确的位置调用这些 .bat 文件[而您的根目录是 kafka 目录,因此使用 {{1 }}点代表根目录,在这个根目录中存放kafka]。

其他相关链接和命令可以在这里找到: https://www.javaer101.com/en/article/12057273.html

另外我想给像我这样的初学者指出——Linux 和 Windows 执行之间的并行

在Linux中写消息到控制台你调用:kafka-console-producer.sh如下:.\bin是Linux中shell执行的扩展

.sh

它在windows中的并行可以通过bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test扩展来观察,它是windows控制台[cmd]上的可执行脚本:kafka-console-producer.sh

.bat

还要注意 .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test.bat 在 kafka 中的位置。在 Windows 中它位于 .sh 而在 Linux 中它直接位于 bin\windows 下的 kafka 目录。一定要相应地打电话!