【发布时间】:2017-03-26 22:31:31
【问题描述】:
我对 Kafka 连接非常陌生。我想将我的消息从 Kafka 主题推送到 elasticsearch。遵循可用文档后..我从发行版 tar.zip (https://github.com/confluentinc/kafka-connect-elasticsearch/releases) 下载并编译了弹性搜索接收器
我添加了弹性搜索属性文件并将上面的 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/searchbox/client/JestClientFactory
我检查了 pom.xml,它正确定义了 Jest 客户端依赖项。我错过了什么吗?
任何指针将不胜感激。
谢谢, 拉杰什
【问题讨论】:
-
似乎有些东西没有正确编译,或者您没有将所有依赖项添加到类路径中?也许您可以显示您已添加到类路径中的内容,并确保将目标目录中的所有内容添加到工作者的类路径中。在大多数情况下,您需要的不仅仅是一个罐子,而是几个。
-
我只是在使用
export CLASSPATH=/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar。还有什么我需要添加到类路径的吗? -
在该目标目录中添加所有内容并试一试。目标目录中的其他 jar 包含连接器的依赖项,因为当前没有 uber jar 打包。
-
我添加了
export CLASSPATH=/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0.jar:/vagrant/kafka-connect-elasticsearch-3.1.0/target/kafka-connect-elasticsearch-3.1.0-development/share/java/kafka-connect-elasticsearch/*,它成功了 -
感谢您的帮助@dawsaw
标签: java apache-kafka apache-kafka-connect