3

我对 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 客户端依赖项。我错过了什么吗?

任何指针将不胜感激。

谢谢, 拉杰什

4

2 回答 2

1

似乎类路径中缺少依赖项之一。Github 发布页面上的包不包含依赖项。

我建议使用Confluent Open Source 发行版并遵循快速入门

于 2016-11-14T20:42:31.980 回答
-1

您还可以构建胖罐。添加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 目录。

于 2017-12-07T15:14:15.623 回答