我对Kafka connect非常陌生。我想将我的消息从Kafka主题推送到elasticsearch。按照可用的文档后..我从发布tar.zip(https://github.com/confluentinc/kafka-connect-elasticsearch/releases)下载并编译了弹性搜索接收器
我添加了弹性搜索属性文件,并在classpath中包含了上面的jar。当我在独立模式下运行kafka connect时,我收到此错误
./ 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 /搜索框/客户端/ JestClientFactory
我检查了pom.xml,并且正确定义了Jest客户端依赖关系。我错过了什么吗?
任何指针都会非常感激。
谢谢, 拉杰什
答案 0 :(得分:1)
看起来类似路径中缺少某个依赖项。 Github Releases页面上的包不包含依赖项。
答案 1 :(得分:-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,构建并将依赖项的jar复制到Kafka的libs目录。