ApacheKafka Java类?
我试图用Java程序导入kafka类,但找不到需要导入的Java类,例如:ApacheKafka Java类?,java,scala,apache-kafka,Java,Scala,Apache Kafka,我试图用Java程序导入kafka类,但找不到需要导入的Java类,例如: import kafka.message.Message; import kafka.utils.Utils; 谁能告诉我在哪里可以找到这些Java类以及如何提供它们?在我看来,Kafka是用Scala编写的,因此在下载其源代码后,我找不到这些java类。如果您尚未使用以下工具构建Kafka发行版,则首先需要: `tar xzf kafka-[VERSION].tgz` `cd kafka-[VERSION]` `.
import kafka.message.Message;
import kafka.utils.Utils;
谁能告诉我在哪里可以找到这些Java类以及如何提供它们?在我看来,Kafka是用Scala编写的,因此在下载其源代码后,我找不到这些java类。如果您尚未使用以下工具构建Kafka发行版,则首先需要:
`tar xzf kafka-[VERSION].tgz`
`cd kafka-[VERSION]`
`./sbt update`
`./sbt package`
最简单的方法是将生成的kafka-[VERSION].jar(在kafka-0.7.2-incubating-src/core/target/scala_2.8.0/)和其他所需的依赖项放在构建路径上,它应该可以工作
所有依赖项(在kafka-[VERSION]-孵化src/core/lib_managed/scala_2.8.0/compile/)都通过sbt更新解决
您可以按照Example minimal java program中的步骤在Ubuntu上使用apache kafka jars:
您需要的jar应该位于kafka安装的libs目录中。将它们复制到java程序可以访问的位置
对于新手来说,这是一个演练。将其放入名为Main.java的文件中:
import java.util.*;
import kafka.producer.*;
import kafka.utils.*;
public class Main{
public static void main(String[] args) {
Properties props = new Properties();
props.put("metadata.broker.list", "broker1:9092,broker2:9092");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("partitioner.class", "example.producer.SimplePartitioner");
props.put("request.required.acks", "1");
ProducerConfig config = new ProducerConfig(props);
System.out.println("k");
}
}
javac -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main.java
el@apollo:~$ java -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main
k
el@apollo:~$
假设您正确安装了ApacheKafka,那么您将在kafka安装目录下找到一个libs
目录。在里面你会发现一堆jar文件
我感兴趣的3个罐子是:
kafka_2.10-0.8.1.1.jar
scala-library-2.10.1.jar
log4j-1.2.15.jar
将这些JAR复制到Main.java文件旁边
编译它:
import java.util.*;
import kafka.producer.*;
import kafka.utils.*;
public class Main{
public static void main(String[] args) {
Properties props = new Properties();
props.put("metadata.broker.list", "broker1:9092,broker2:9092");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("partitioner.class", "example.producer.SimplePartitioner");
props.put("request.required.acks", "1");
ProducerConfig config = new ProducerConfig(props);
System.out.println("k");
}
}
javac -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main.java
el@apollo:~$ java -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main
k
el@apollo:~$
运行它:
import java.util.*;
import kafka.producer.*;
import kafka.utils.*;
public class Main{
public static void main(String[] args) {
Properties props = new Properties();
props.put("metadata.broker.list", "broker1:9092,broker2:9092");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("partitioner.class", "example.producer.SimplePartitioner");
props.put("request.required.acks", "1");
ProducerConfig config = new ProducerConfig(props);
System.out.println("k");
}
}
javac -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main.java
el@apollo:~$ java -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main
k
el@apollo:~$
注意事项:
import java.util.*;
import kafka.producer.*;
import kafka.utils.*;
public class Main{
public static void main(String[] args) {
Properties props = new Properties();
props.put("metadata.broker.list", "broker1:9092,broker2:9092");
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("partitioner.class", "example.producer.SimplePartitioner");
props.put("request.required.acks", "1");
ProducerConfig config = new ProducerConfig(props);
System.out.println("k");
}
}
javac -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main.java
el@apollo:~$ java -cp .:kafka_2.10-0.8.1.1.jar:scala-library-2.10.1.jar:log4j-1.2.15.jar Main
k
el@apollo:~$
该节目并不抱怨卡夫卡制作人课程的缺失。这意味着您正确导入了kafka类。您能发布错误吗?此外,要使用Scala库,必须将Scala库(对于正确版本的Scala)添加到类路径中。您已经这样做了吗?谢谢您的回复-错误是我找不到正确的jar文件。现在问题解决了(见下面的回复),你想试试jafka吗?来自卡夫卡的纯java项目。更简单更快。