2016-11-13 3 views
1

Ich bin neu bei Kafka connect. Ich möchte meine Nachrichten vom Kafka-Thema zu elasticsearch schieben. Nach dem Folgen der verfügbaren Dokumentation .. Ich heruntergeladen und kompiliert elastische Suchsenke aus Release tar.zip (https://github.com/confluentinc/kafka-connect-elasticsearch/releases)Kafka connect confluent elasticsearch sink (keine klassenfehler gefunden)

Ich fügte die elastische Suche Eigenschaften Datei und enthalten die oben genannten jar in Classpath. Wenn ich im Standalone-Modus kafka verbinden laufen bekomme ich diesen Fehler

./usr/bin/connect-standalone etc/schema-registry/connect-avro-standalone.properties etc/kafka-connect-elasticsearch/quickstart-elasticsearch.properties

[2016-11-13 00:05:38,768] ERROR Task elasticsearch-sink-0 threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:142) java.lang.NoClassDefFoundError:io/searchbox/client/JestClientFactory 
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:81) 
at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start(ElasticsearchSinkTask.java:52) 
at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:207) 
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:139) 
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:140) 
at o 

NoClassDefFoundError:io/searchbox/client/JestClientFactory

I pom.xml checkedthe und es hat Abhängigkeit korrekt definiert Jest-Client. Fehle ich etwas?

Alle Zeiger würden wirklich geschätzt werden.

Danke, Rajesh

+0

Scheint, dass etwas nicht korrekt kompiliert wurde oder Sie nicht alle Abhängigkeiten zum Klassenpfad hinzugefügt haben? Vielleicht können Sie zeigen, was Sie dem Klassenpfad hinzugefügt haben, und sicherstellen, dass alles im Zielverzeichnis dem Klassenpfad für den Worker hinzugefügt wird. In den meisten Fällen wird es nicht nur ein Glas sein, das Sie brauchen, sondern mehrere. – dawsaw

+0

Ich benutze nur 'export CLASSPATH =/vagrant/kafka-verbinden-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar'. Muss ich noch etwas zum Klassenpfad hinzufügen? – Rajesh

+0

Fügen Sie alles in diesem Zielverzeichnis hinzu und versuchen Sie es. Die anderen JAR-Dateien im Zielverzeichnis enthalten Abhängigkeiten für den Connector, da derzeit keine Uber-JAR-Paketierung vorhanden ist. – dawsaw

Antwort

1

Es ist wie eine der Abhängigkeiten scheint aus dem Classpath fehlt. Die Pakete auf der Github Releases-Seite enthalten keine Abhängigkeiten.

Ich würde vorschlagen, die Confluent Open Source distribution zu verwenden und die quickstart zu folgen.

-2

Sie können auch Fettglas bauen. In descriptorRefs

<build> 
 
    <plugins> 
 
    .... 
 
    <plugin> 
 
     <groupId>org.apache.maven.plugins</groupId> 
 
     <artifactId>maven-assembly-plugin</artifactId> 
 
     <configuration> 
 
     .... 
 
     <descriptorRefs> 
 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
 
     </descriptorRefs> 
 
     </configuration> 
 
     .... 
 
    </plugin> 
 
    </plugins> 
 
    .... 
 
</build>

pom, zu bauen und zu kopieren Glas mit Abhängigkeiten Verzeichnis von Kafka LIBS.

+1

Es ist nicht sein Projekt, er kann nicht ändern die Mavenpom des Glases er heruntergeladen hat ... –

+0

Sie haben Recht, es ist nicht sein Projekt. Aber er lädt das Zip-Archiv mit Java-Code, nicht mit Jar. Und er sagte, er kompiliert und baut Glas. Also vor dem Kompilieren kann er pom so modifizieren. –

Verwandte Themen