17

Apache-Kafka メッセージング キューについて。

Kafka ダウンロード ページから Apache Kafka をダウンロードしました。に抽出しました/opt/apache/installed/kafka-0.7.0-incubating-src

クイックスタート ページには、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 インスタンスにアクセスできることを確認しました。全て大丈夫。

なぜこのエラーが発生するのですか?

4

7 に答える 7

15

最初に、次のコマンドを実行してKafkaをビルドする必要があります。

> ./sbt update
> ./sbt package 

そうして初めて、Kafkaは使用できるようになります。

于 2012-05-04T10:35:04.407 に答える
7

知っている必要があります

./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 を作成します。次に、開始スクリプトがこれをクラスパスに追加し、必要なすべてのクラスを取得する必要があります。

于 2013-09-22T00:57:28.423 に答える
4

環境変数がないSCALA_VERSIONと、実行可能ファイルは必要なライブラリをロードする方法がわからないようです。Kafka インストール ディレクトリから次のことを試してください。

SCALA_VERSION=2.9.3 bin/kafka-server-start.sh config/server.properties

http://kafka.apache.org/documentation.html#quickstartを参照してください。

于 2014-08-14T20:06:22.960 に答える
1

Apache が提供するバイナリ ダウンロードを使用することもできます。

たとえば、このリンクから kafka バージョン 0.9.0.1 をダウンロードします。

他のバージョンについては、link2からダウンロードし、代わりにバイナリ バージョンをダウンロードしてください。これらはビルド済みのバージョンです。Scala を使用して再度ビルドする必要はありません。

使用は、代わりにソース ダウンロードを使用しています。

于 2016-05-11T09:43:07.373 に答える
1

前の回答に追加するために、IntelliJ を実行していて、IntelliJ 内で Kafka を実行したり、それをステップ実行したりしたい場合は、必ず実行してください

> ./sbt idea

IntelliJ プロジェクトをゼロから作成するのに半日を費やしましたが、それを機能させるために必要なのは 1 つのコマンドだけであることがわかりました。また、IntelliJ 用の Scala プラグインがインストールされていることを確認してください。

于 2012-05-07T19:05:12.637 に答える
1

Kafka のダウンロード ページには、次の 2 つのオプションがあります。

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)

于 2017-01-03T22:16:13.087 に答える