2016-11-13 56 views
1

我是卡夫卡連接非常新。我想把我的消息從Kafka主題推送到elasticsearch。在下面的可用文檔..我下載和編譯彈性搜索接收器從發佈tar.zip(https://github.com/confluentinc/kafka-connect-elasticsearch/releases卡夫卡連接匯合elasticsearch水槽(沒有發現類錯誤)

我添加了彈性搜索屬性文件,並將上述jar包括在classpath中。當我運行卡夫卡在單機模式下連接我得到這個錯誤

./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

我checkedthe pom.xml的,它有正確定義玩笑客戶的依賴。我錯過了什麼?

任何指針將非常感激。

感謝, 拉傑什

+0

似乎某些東西編譯不正確,或者您沒有將所有的依賴關係添加到類路徑中?也許你可以顯示你已經添加到類路徑的內容,並確保目標目錄中的所有內容都被添加到了worker的類路徑中。在大多數情況下,它不會只是你需要的一個罐子,而是幾個罐子。 – dawsaw

+0

我只是使用'export CLASSPATH =/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar'。還有什麼我需要添加到類路徑? – Rajesh

+0

在該目標目錄中添加所有內容並試一試。目標目錄中的其他jar包含連接器的依賴關係,因爲目前沒有超級jar包裝。 – dawsaw

回答

-2

你也可以建立脂肪罐。添加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,建立和複製與依賴罐子LIBS卡夫卡的目錄。

+1

這不是他的項目,他不能修改他下載的罐子的maven pom ... –

+0

你是對的,這不是他的項目。但他用java代碼下載zip文件,而不是jar。他說他編譯並製作了jar。所以在編譯之前,他可以用這種方式修改pom。 –