正如主题描述中所述,我正在尝试使用Scala 2.9.2运行Kafka 0.8。
我可以使用0.8的快速入门(https://cwiki.apache.org/KAFKA/kafka-08-quick-start.html)获得一个工作版本,但默认情况下它是针对Scala 2.8.0编译的。
我试着修改步骤
./sbt package 至
./sbt "++2.9.2 package"它编译时没有错误,但在启动过程中它会抱怨找不到主类。
/tmp/kafka-8-test/kafka[0.8]$ bin/kafka-server-start.sh onfig/server1.properties
Error: Could not find or load main class kafka.Kafka任何帮助都将受到高度的感谢。
发布于 2013-02-07 01:47:11
问题是bin/kafka-server-start.sh脚本使用bin/kafka-run-class.sh来执行生成的jar文件。
此脚本具有硬编码版本,因此您需要像这样对其进行自定义:
...
library=$(echo "$ivyPath/org.scala-lang/scala-library/jars/scala-library-2.9.2.jar")
CLASSPATH=$CLASSPATH:$library
compiler=~$(echo "$ivyPath/org.scala-lang/scala-compiler/jars/scala-compiler-2.9.2.jar")
CLASSPATH=$CLASSPATH:$compiler
log4j=$(echo "$ivyPath/log4j/log4j/jars/log4j-1.2.15.jar")
CLASSPATH=$CLASSPATH:$log4j
slf=$(echo "$ivyPath/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar")
CLASSPATH=$CLASSPATH:$slf
zookeeper=$(echo "$ivyPath/org.apache.zookeeper/zookeeper/jars/zookeeper-3.3.4.jar")
CLASSPATH=$CLASSPATH:$zookeeper
jopt=$(echo "$ivyPath/net.sf.jopt-simple/jopt-simple/jars/jopt-simple-3.2.jar")
CLASSPATH=$CLASSPATH:$jopt
for file in $base_dir/core/target/scala-2.9.2/*.jar;
do
CLASSPATH=$CLASSPATH:$file
done
for file in $base_dir/core/lib/*.jar;
do
CLASSPATH=$CLASSPATH:$file
done
for file in $base_dir/perf/target/scala-2.9.2/kafka*.jar;
do
CLASSPATH=$CLASSPATH:$file
done
...发布于 2013-02-07 15:36:03
kafka-run-class.sh是硬编码到Scala2.8.0的。您可以按照之前的建议将2.8.0更改为2.9.2。
这对我来说很有效:
sed -i "s/2.8.0/2.9.2/g" bin/kafka-run-class.shsed -i.bak "s/2.8.0/2.9.2/g" bin/kafka-run-class.sh
发布于 2015-01-12 01:35:50
在最新版本的Kafka 0.8.1.1和gradlew中,"SCALA_VERSION“是脚本中的一个变量。
SCALA_VERSION=2.10.4
然而,之后的某个地方出了问题:
其中一个文件没有2.10.4部分,而只有2.10部分:
peter_v@trusty64:~/data/kafka/kafka-0.8.1.1-src$ find . -name '*.jar' ./perf/build/libs/kafka-perf_2.10-0.8.1.1.jar ./clients/build/libs/kafka-clients-0.8.1.1.jar ./system_test/migration_tool_testsuite/0.7/lib/kafka-perf-0.7.0.jar ./system_test/migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar ./system_test/migration_tool_testsuite/0.7/lib/zkclient-0.1.jar ./examples/build/libs/kafka-examples-0.8.1.1.jar ./core/build/libs/kafka_2.10-0.8.1.1.jar ############ 2.10 instead of 2.10.4 ? ./core/build/dependant-libs-2.10.4/snappy-java-1.0.5.jar ./core/build/dependant-libs-2.10.4/metrics-core-2.2.0.jar ./core/build/dependant-libs-2.10.4/zkclient-0.3.jar ./core/build/dependant-libs-2.10.4/log4j-1.2.15.jar ./core/build/dependant-libs-2.10.4/slf4j-api-1.7.2.jar ./core/build/dependant-libs-2.10.4/zookeeper-3.3.4.jar ./core/build/dependant-libs-2.10.4/jopt-simple-3.2.jar ./core/build/dependant-libs-2.10.4/scala-library-2.10.4.jar ./target/scala-2.10/kafka-0-8-1-1-src_2.10-0.1-SNAPSHOT.jar ./lib/apache-rat-0.8.jar ./contrib/hadoop-consumer/lib/piggybank.jar ./contrib/hadoop-consumer/build/libs/kafka-hadoop-consumer-0.8.1.1.jar ./contrib/hadoop-producer/lib/piggybank.jar ./contrib/hadoop-producer/build/libs/kafka-hadoop-producer-0.8.1.1.jar ./contrib/build/libs/contrib-0.8.1.1.jar ./gradle/wrapper/gradle-wrapper.jar
通过复制到2.10.4名称作为解决方法,Kafka正确启动。
cp core/build/libs/kafka_2.10-0.8.1.1.jar core/build/libs/kafka_2.10.4-0.8.1.1.jar `
https://stackoverflow.com/questions/14735363
复制相似问题