关于ApacheKafka消息队列。
我已经从Kafka下载页面下载了apachekafka。我把它提取出来 /opt/apache/installed/kafka-0.7.0-incubating-src
.
快速启动页面显示您需要启动zookeeper,然后通过运行以下命令启动kafka: >bin/kafka-server-start.sh config/server.properties
我使用一个单独的zookeeper服务器,所以我编辑了 config/server.properties
指向zookeeper示例。
当我按照快速启动页面中的说明运行kafka时,会出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: kafka/Kafka
Caused by: java.lang.ClassNotFoundException: kafka.Kafka
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: kafka.Kafka. Program will exit.
我使用telnet来确保zookeeper示例可以从kafka运行的机器上访问。一切都好。
为什么我会犯这个错误?
7条答案
按热度按时间gpfsuwkq1#
为了补充前面的答案,如果您正在运行intellij,并且希望在intellij中运行kafka和/或逐步完成它,请确保运行
我花了半天的时间试图从头开始创建intellij项目,结果证明,我只需要一个命令就可以让它工作。另外,请确保安装了用于intellij的scala插件。
cu6pst1q2#
似乎没有
SCALA_VERSION
环境变量,可执行文件不知道如何加载所需的库。从kafka安装目录中尝试以下操作:SCALA_VERSION=2.9.3 bin/kafka-server-start.sh config/server.properties
看到了吗http://kafka.apache.org/documentation.html#quickstart.bis0qfac3#
必须首先通过运行以下命令来构建kafka:
只有到那时,Kafka才能投入使用。
h7wcgrx34#
您还可以使用apache提供的二进制下载。
例如,从这个链接下载Kafka版本-0.9.0.1。
对于其他版本,请从link2下载并下载二进制版本。这些是已生成的版本。不需要使用scala再次构建。
我们使用的是源代码下载。
sirbozc55#
你可以在Kafka下载页面上找到以下两个选项
https://kafka.apache.org/downloads.html
源下载:
二进制下载
您已经下载了“kafka-0.7.0-incubating-src”it的源代码
下载kafka scala 2.10-kafka_2.10-0.10.1.1.tgz二进制软件包(asc,md5)
fcwjkofz6#
你应该知道的
默认情况下,将为scala 2.8.0生成kafka二进制文件。如果你需要一个不同的版本,你需要这样做
将2.9.2替换为所需的版本号。这将生成适当的二进制文件。一般来说,在切换版本时,应该运行
从以前的版本中清除二进制文件。
实际上,另外,您可能还需要执行此命令
这个命令解析运行kafka的所有依赖项,并创建一个只包含这些依赖项的jar。然后开始脚本会将其添加到类路径中,您应该拥有所有所需的类。
polhcujo7#
您已下载源版本。下载kafka的二进制软件包并继续测试。