我在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
有人知道如何解决这个问题吗?
答案 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
答案 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 目录。一定要相应地打电话!