Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ApacheKafka Java类?_Java_Scala_Apache Kafka - Fatal编程技术网

ApacheKafka 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]` `.

我试图用Java程序导入kafka类,但找不到需要导入的Java类,例如:

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项目。更简单更快。