2012-05-04 16 views
9

Betrifft Apache-Kafka messaging queue.kafka NoClassDefFoundError kafka/Kafka

Ich habe Apache Kafka von der Kafka Downloadseite heruntergeladen. Ich habe es zu /opt/apache/installed/kafka-0.7.0-incubating-src extrahiert.

Die quickstart page sagt, Sie müssen zookeeper starten und dann Kafka starten, indem Sie:
>bin/kafka-server-start.sh config/server.properties

mir einen separaten Zookeeper-Server verwenden, so bearbeitet i config/server.properties zu dieser Zookeeper Instanz zu verweisen.

Wenn ich Kafka laufen, wie in der Schnellstart-Seite angewiesen, erhalte ich folgende Fehlermeldung:

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. 

ich telnet sicher aus der Maschine der Zookeeper Instanz zugänglich zu machen verwendet, die Kafka auf läuft. Alles ist ok.

Warum erhalte ich diesen Fehler?

Antwort

11

Sie müssen zuerst Kafka bauen, indem Sie die folgenden Befehle ausführen:

> ./sbt update 
> ./sbt package 

Erst dann wird Kafka einsatzbereit sein.

0

einfach auf die vorherige Antwort hinzuzufügen, wenn Sie IntelliJ laufen lassen, und wollen Kafka innerhalb IntelliJ und/oder Schritt durch sie laufen, stellen Sie sicher,

> ./sbt idea 

verbrachte ich leicht einen halben Tag laufen Ich versuche, das IntelliJ-Projekt von Grund auf neu zu erstellen, und es stellte sich heraus, dass ein einziger Befehl alles war, was ich brauchte, um es in Betrieb zu nehmen. Stellen Sie außerdem sicher, dass Sie das Scala-Plugin für IntelliJ installiert haben. wissen

5

sollten Sie, dass

./sbt update 
./sbt package 

Kafka Binärdateien für Scala 2.8.0 standardmäßig produzieren. Wenn Sie es für eine andere Version benötigen, müssen Sie

./sbt "++2.9.2 update" 
./sbt "++2.9.2 package" 

ersetzen, 2.9.2 mit der gewünschten Versionsnummer ersetzen. Dadurch werden die entsprechenden Binärdateien erstellt. Wenn Sie die Versionen wechseln, sollten Sie im Allgemeinen

ausführen, um die Binärdateien von früheren Versionen zu bereinigen.

Eigentlich zusätzlich, können Sie auch diesen Befehl ausführen müssen

./sbt "++2.9.2 assembly-package-dependency" 

Dieser Befehl alle Abhängigkeiten löst Kafka für das Laufen, und schafft ein Glas, das nur diese enthält. Dann würden die Startskripte dies zum Klassenpfad hinzufügen, und Sie sollten alle gewünschten Klassen haben.

2

Es scheint, dass die ausführbare Datei ohne die Umgebungsvariable SCALA_VERSION nicht weiß, wie die erforderlichen Bibliotheken geladen werden.Versuchen Sie Folgendes aus dem Kafka-Installationsverzeichnis:

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

http://kafka.apache.org/documentation.html#quickstart See.

0

Sie können auch die von Apache bereitgestellten Binärdownloads verwenden.

Zum Beispiel herunterladen kafka Version - 0.9.0.1 von diesem link.

Für andere Version herunterladen von link2 und die binären Versionen statt herunterladen. Diese sind bereits gebaute Version. Sie müssen nicht erneut mit Scala bauen.

Verwenden Sie stattdessen den Quelldownload.

0

Sie haben die Quellversion heruntergeladen. Laden Sie das Binärpaket von Kafka herunter und fahren Sie mit dem Testen fort.

+0

Diese Frage wurde vor 4 Jahren gestellt. Zu dieser Zeit war die Quellcodeoption die einzige Option. – summerbulb

0

Sie können folgende zwei Optionen auf Kafka-Download-Seite finden

https://kafka.apache.org/downloads.html

Quelle herunterladen:
Binary Downloads

Sie heruntergeladen haben "kafka-0.7.0-Inkubations-src" it‘ Quellcode

das Binärpaket von 2,10 Kafka Scala herunterladen - kafka_2.10-0.10.1.1.tgz (asc, md5)