5

Java プログラムで kafka クラスをインポートしようとしていますが、次のようなインポートする必要がある Java クラスが見つかりませんでした。

import kafka.message.Message;
import kafka.utils.Utils;

これらの Java クラスがどこにあり、どのように提供すればよいか誰か教えてもらえますか? Kafka は Scala で書かれているように見えるので、ソース コードをダウンロードした後、それらの Java クラスを見つけることができません。

4

2 に答える 2

6

まだ 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]-incubating-src/core/lib_managed/scala_2.8.0/compile/ 内) は、sbt の更新で解決されます。

http://kafka.apache.org/07/quickstart.htmlの手順に従うことができます

于 2012-12-14T23:25:37.900 に答える
2

Ubuntu で apache kafka jar を使用するための最小限の Java プログラムの例:

必要な 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");
   }
}

Apache Kafka を正しくインストールしたと仮定すると、kafka インストール ディレクトリの下にディレクトリがありますlibs。その中には、たくさんのjarファイルがあります。

私が興味を持っている3つのjarファイルは次のとおりです。

kafka_2.10-0.8.1.1.jar
scala-library-2.10.1.jar
log4j-1.2.15.jar

これらの jar をコピーして、Main.java ファイルのすぐ隣に配置します。

それをコンパイルします。

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.producer クラスについて文句を言いません。これは、kafka クラスを正しくインポートしたことを意味します。

于 2014-08-21T21:02:08.607 に答える