kafka NoClassDefFoundError kafka / Kafka
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka NoClassDefFoundError kafka / Kafka相关的知识,希望对你有一定的参考价值。
关于Apache-Kafka messaging queue。
我从Kafka下载页面下载了Apache Kafka。我把它提取到/opt/apache/installed/kafka-0.7.0-incubating-src
。
quickstart page说你需要启动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确保可以从Kafka运行的机器访问Zookeeper实例。一切都好。
为什么我会收到此错误?
您必须首先通过运行以下命令来构建Kafka:
> ./sbt update
> ./sbt package
只有这样,卡夫卡才能准备好使用。
你应该知道
./sbt update
./sbt package
默认情况下会为Scala 2.8.0生成Kafka二进制文件。如果您需要其他版本,则需要执行此操作
./sbt "++2.9.2 update"
./sbt "++2.9.2 package"
用所需的版本号替换2.9.2。这将生成适当的二进制文件。通常,当您切换版本时,您应该运行
./sbt clean
从以前的版本清理二进制文件。
实际上,此外,您可能还需要执行此命令
./sbt "++2.9.2 assembly-package-dependency"
此命令解析运行Kafka的所有依赖项,并创建一个仅包含这些的jar。然后启动脚本会将其添加到类路径中,您应该拥有所有所需的类。
似乎没有SCALA_VERSION
环境变量,可执行文件不知道如何加载必要的库。从Kafka安装目录中尝试以下操作:
SCALA_VERSION=2.9.3 bin/kafka-server-start.sh config/server.properties
见http://kafka.apache.org/documentation.html#quickstart。
只是添加到上一个答案,如果您正在运行IntelliJ,并希望在IntelliJ中运行Kafka和/或单步执行它,请确保运行
> ./sbt idea
我花了半天的时间尝试从头开始创建IntelliJ项目,事实证明,只需要一个命令就可以让它工作。此外,请确保已安装IntelliJ的Scala插件。
您还可以使用Apache提供的二进制下载。
例如,从这个link下载kafka版本 - 0.9.0.1。
对于从link2下载的其他版本,请下载二进制版本。这些已经是内置版本。不需要使用Scala再次构建。
使用正在使用源下载。
您已下载源版本。下载Kafka的二进制包并继续进行测试。
您可以在Kafka下载页面上找到以下两个选项
https://kafka.apache.org/downloads.html
来源下载: 二进制下载
你已经下载了“kafka-0.7.0-incubating-src”它的源代码
下载Kafka Scala 2.10的二进制包 - kafka_2.10-0.10.1.1.tgz(asc,md5)
以上是关于kafka NoClassDefFoundError kafka / Kafka的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NoClassDefFoundError
大数据技术之_10_Kafka学习_Kafka概述+Kafka集群部署+Kafka工作流程分析+Kafka API实战+Kafka Producer拦截器+Kafka Streams