【问题标题】:Unable to start Zookeeper server in Apache Kafka无法在 Apache Kafka 中启动 Zookeeper 服务器
【发布时间】:2017-10-30 23:51:23
【问题描述】:

我在kafka_home/bin/windows(建议here)。 然后我遇到了与here 相同的问题,它建议从kafka home 启动程序。 从 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

有人知道怎么解决吗?

【问题讨论】:

  • 跟踪显示配置文件丢失
  • 确保配置文件在正确的目录位置
  • 是的,它位于kafka_home/config/。还是报错

标签: java apache-kafka apache-zookeeper


【解决方案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 Server

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

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

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

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

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

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

通过.bat扩展可以观察到windows的并行,这是windows控制台[cmd]上的可执行脚本:kafka-console-producer.sh

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

还要注意 .bat.sh 在 kafka 中的位置。在 Windows 中,它位于 bin\windows,而在 Linux 中,它可以直接在 bin 下用于 kafka 目录。确保相应地调用!

【讨论】:

    【解决方案2】:

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

    这是我解决问题的方法,然后 zookeeper ,kafka 服务器已正常启动,运行良好。 1. 安装 scala 并设置环境变量 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 将字符串 %~dp0 的所有条目替换为 %CD% 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 Zookeeper 应该可以正常启动 5 CD 并运行命令以启动 KAFKA SERVER: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

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 在 Apache Kafka 网站的快速入门指南的第一行,明确写到对于 Windows 用户,您必须在根文件夹中,然后执行 bin\windows\... 和命令的其余部分。无论如何,谢谢。
      • 是的,但是在您上面的问题中,您明确表示您做了一些不同的事情:您不在根文件夹中,然后执行了bin\windows\zookeeper-server-start.bat(这本来可以),但是您却在错误目录:“我在kafka_home/bin/windows”。
      • 我知道,我的评论是为了澄清我发现了我的错误。
      猜你喜欢
      • 2015-08-08
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      相关资源
      最近更新 更多