【问题标题】:Apache Kafka error on windows - Couldnot find or load main class QuorumPeerMainWindows 上的 Apache Kafka 错误 - 无法找到或加载主类 QuorumPeerMain
【发布时间】:2014-09-22 02:54:09
【问题描述】:

我刚刚从 Apache 网站下载了 Kafka 2.8.0,我正在尝试使用网站上给出的说明进行设置。但是当我尝试启动 zookeper 服务器时,出现以下错误:

错误:无法找到或加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

我的环境是 Windows 7 64 位。我尝试关注以下电子邮件链:Apache Email Chain。但它仍然有同样的问题。任何人都可以指导我吗?因为我对此很陌生,在 Google/Apache Kafka 电子邮件链上找不到很多信息。

【问题讨论】:

标签: apache-kafka apache-zookeeper


【解决方案1】:

这个问题是因为你下载了错误的Kafka版本。在official page

您已选择源下载。如果您将下载二进制文件,一切都会按预期进行。

【讨论】:

  • 我使用的是二进制,在 Mac 上运行。zookeeper 正在另一个窗口中运行。但是当我尝试启动 kafka 时,我遇到了上述错误。
【解决方案2】:

即使我为我的 Scala 版本下载了正确的 Kafka,也会出现相同的错误消息。

最终我运行的是非 windows sh 文件(需要在 windows 子文件夹中运行 bat),并且是从 bin 文件夹而不是根目录中运行的。向上移动到根 Kafka 文件夹并从那里运行似乎已经奏效了。

C:\kafka_2.10-0.8.2.0>bin\windows\zookeeper-server-start.bat config\zookeeper.properties

【讨论】:

  • 是的,没注意windows文件夹。
【解决方案3】:

只需下载二进制文件并按照以下链接中提到的步骤操作。 http://kafka.apache.org/07/quickstart.html

如果你遇到像

这样的错误

错误:无法找到或加载主类 org.apache.zookeeper.server.quorum.Quorumpeermain

zookeeper.propertiesconfig 文件夹复制到bin 文件夹和bin/windows 文件夹。

现在开始点赞
服务器:运行 zookeeper-server-start.bat zookeeper.properties

来自binbin/windows(如果您在窗口机器中)。它应该可以工作。

如果您仍然遇到问题,下面的链接会有所帮助 http://blog.anilot.tk/2014/08/06/Set-Up-Kafka-On-Windows/

现在尝试盯着 Kafka 服务器。

如果您使用的是 windows,请使用以下命令:转到 bin/windows 然后运行 kafka-server-start.bat ../../config/server.properties

如果您在 shell 提示符下尝试,请转到 bin 并运行以下命令

kafka-server-start.bat ../config/server.properties 

**确保 server.properties 存在于配置文件夹中

【讨论】:

    【解决方案4】:

    从您的 Kafka 根文件夹运行这些命令:

    cd bin\windows

    然后运行 ​​Zookeper 服务器:

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

    然后运行Kafka服务器:

    kafka-server-start.bat ..\..\config\server.properties


    这里的问题是运行 /bin/windows 文件夹中的 .bat 文件,所以在您按照上述步骤运行服务器后,想要跟进在本教程中,确保您正在运行正确的批处理文件来创建主题等,例如:

    创建主题:

    kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

    列出主题:

    kafka-topics.bat --list --zookeeper localhost:2181

    【讨论】:

    • 这对我有用,在我将 Apache 和 Kafka 移动到路径中没有空格的文件夹之后。
    • 是的。对我来说,它也有效,将 kafka 文件夹直接移动到 C:\ 下。由于文件夹名称中的空间问题,当我将 kafka 包解压缩到 C:\Program Files\ 时它不起作用。
    【解决方案5】:

    我在 OS X 上运行,我发现在通向我的 Kafka 基本目录的路径中的任何地方都有空格会导致这个确切的错误消息。重命名没有空格的东西解决了没有其他修复的问题。

    例如,我的 Kafka 安装位于 /Users/me/Kafka Demo/kafka_2.11-0.9.0.1,这在我尝试启动 Zookeeper 时导致了该错误。我所做的只是将内容重命名为/Users/me/KafkaDemo/kafka_2.11-0.9.0.1,一切正常。

    【讨论】:

    • 这正是我的问题,非常感谢!
    【解决方案6】:

    我从 Apache 下载了最新的稳定版 KafkaMatheus Felipe 提到的指令按预期工作。

    我下载了二进制选项 - Scala 2.11 @http://kafka.apache.org/downloads

    【讨论】:

      【解决方案7】:

      我曾经通过 git bash 工具在 cmd 下运行来解决这个问题。

      bin/zookeeper-server-start.sh config/zookeeper.properties
      

      解决方案:我切换到 cygwin 工具 (http://cygwin.com/) 运行相同的 cmd,但我没有再看到问题。

      【讨论】:

        【解决方案8】:

        我在使用 zookeeper-3.4.12 时遇到了同样的问题。 bin 目录没有 .bat 文件和 windows 目录。 只存在 .com 和 .sh 文件。 .com 包含操作 zookeeper 执行。 如您所见,那必须找到 %JAVA%。 所以我只是设置了 JAVA=[我的 java.exe 路径]。它有效。

        【讨论】:

          【解决方案9】:

          是的,我也遇到了同样的问题,并尝试了上面一些 cmets 中建议的这种方式,

          首先我在C:\Program Files 中有我的Kafka,然后我将kafka_2.11-2.1.0 文件夹移动到C:\ 目录并尝试了以下命令,它成功了

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

          P.S - 在启动 kafka 之前运行 zookeper 服务器

          【讨论】:

            【解决方案10】:

            windows 操作系统的解决方法如下:

            1. 从Apache Kafka官网下载二进制版本而不是源代码版本。
            2. 确保 JAVA_HOME 环境变量中没有空格(默认安装在程序文件中),请按照官方安装文档进行操作。 https://docs.oracle.com/cd/E39271_01/general.300/eid_getting_started/src/tgs_install_jdk.html
            3. 确保 JRE 路径和 KAFKA_HOME 路径中也没有空格。
            4. 在启动 Kafka 之前运行 zookeeper。

            【讨论】:

            • 下载二进制版本解决了windows上的问题。谢谢人
            【解决方案11】:

            由于在 Program Files 中保留 kafka_2.12-2.3.0 文件夹,我在 Windows 平台上也遇到了同样的问题。我将 Kafka 目录从 Program Files 更改为 C:\ 驱动器根目录。执行以下命令后运行良好:

            首先,进入Kafka根文件夹:

            cd C:\kafka_2.12-2.3.0
            

            运行 Zookeeper 服务器:

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

            然后运行 ​​Kafka 服务器:

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

            【讨论】:

              【解决方案12】:

              我在 windows 环境中使用下面提到的命令。

              Confluent_home\bin\windows> zookeeper-server-start.bat ..\..\etc\kafka\zookeeper.properties
              

              如果您仍然遇到相同的错误,请验证您的文件夹结构,如果是,文件夹名称之间是否有空格,然后替换为“_”或完全删除。

              我也遇到了同样的错误。

              【讨论】:

                【解决方案13】:

                有点奇怪。但是将根文件夹名称替换为 Kafka 解决了我的问题。它可能会帮助一个或其他人。

                【讨论】:

                • 当您可以从屏幕剪切并粘贴到 Stack Overflow 时,请不要将任何代码粘贴为图片。
                • @DavidBuck 感谢您的建议。高度赞赏。我知道应该有不上传照片的政策。如果是请确认
                • SO 中的许多东西不一定是策略,但绝对被认为是好的或坏的做法——这个讨论主要发生在 meta.stackoverflow.com。 This answer 例如建议审阅者可以对包含代码图片的答案做什么。也有一些指导here。好的答案的主要规则是他们应该 a) 清楚简洁地回答问题,b) 尽可能清楚地解释为什么答案有帮助(即没有仅代码的答案),c) 将代码作为代码发布。
                【解决方案14】:

                第一件事:删除文件夹名称中的所有空格。 第二件事:使用Powershell

                路径错误:

                d:\kafka node> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
                

                正确路径

                d:\kafka_node> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
                

                感谢和问候 Jaiswar Vipin Kumar R.

                【讨论】:

                • 通过将 kafka 从“C:\Program Files\Kafka”移动到“C:\Kafka”为我解决了这个问题。不喜欢这些空间。
                【解决方案15】:

                适用于 Windows 操作系统的 Kafka docker

                启动 Zookeeper

                • 将文件/conf/zoo_sample.cfg 克隆到/conf/zoo.cfg
                • 通过在 zoo.cfg 文件末尾添加此行 admin.serverPort=8099 来配置 Zookeeper Admin(在 /conf/zoo.cfg 文件中)netty 服务器端口。这是为了避免以后App默认端口8080冲突。
                • 运行命令启动./zkServer.cmd

                停止 Zookeeper

                • 运行命令停止:./zkServer.cmd stop

                启动卡夫卡

                • 使用 Zookeeper 管理端口(例如 admin.serverPort=8099)配置 Kafka(在 /config/zookeeper.properties 文件中)
                • 运行命令启动./kafka-server-start.bat ../../config/server.properties

                停止 Kafka

                • 运行命令停止:./kafka-server-stop.bat

                主题

                • 运行命令创建主题:./kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test_1
                • 运行命令列出所有主题:./kafka-topics.bat --list --zookeeper localhost:2181

                测试题目

                • 运行命令验证是否创建了主题:./kafka-topics.bat --describe --topic test_1 --bootstrap-server localhost:9092
                • 打开终端创建主题事件:./kafka-console-producer.bat --topic test_1 --bootstrap-server localhost:9092
                • 打开终端从主题读取事件:./kafka-console-consumer.bat --topic test_1 --from-beginning --bootstrap-server localhost:9092

                实用

                • 将一些事件写入主题(kafka-console-producer 终端):这是一个事件
                • 将看到消费者阅读后打印出来的事件(在kafka-console-consumer终端)=> 这是一个事件

                编码愉快!

                【讨论】:

                  【解决方案16】:

                  我也遇到了同样的问题。

                  将 JAVA_HOME 系统变量更改为缩短的路径名,使其不包含空格。

                  代替:C:\Program Files\Java\jdk1.8.0_241

                  设置:C:\Progra~1\Java\jdk1.8.0_241

                  如果任何 kafka .bat 文件引用了包含空格的格式错误的 JAVA_HOME 变量,则可能会发生此错误。

                  将缩短的路径名设置为变量,避免更改到另一个不包含空格的路径并解决问题。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-12-01
                    • 2016-08-27
                    • 1970-01-01
                    • 2020-06-28
                    • 1970-01-01
                    • 2016-06-12
                    相关资源
                    最近更新 更多