【问题标题】:Errors while setting up a Kafka connector pipeline设置 Kafka 连接器管道时出错
【发布时间】:2021-01-30 22:11:27
【问题描述】:

设置 Kafka 连接器管道时出错

环境概览:

Docker 容器

  1. docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mypw -d mysql:latest
  2. docker run -d --name Elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" Elasticsearch:7.9。 2

操作系统

  1. WSL2 开启 - Windows-10 版本 1909(操作系统内部版本 18363.1139)

卡夫卡版

  1. confluent-6.0.0

你好 我正在阅读 Kafka:Neha Narkhede、Gwen Shapira 和 Todd Palino 的权威指南 我已经阅读了连接器示例:MySQL 到 Elasticsearch 章节 (p.146),我正在 按照说明创建从 MySql 源到 Elasticsearch 接收器的管道。 我对说明做了一些转移

  • 我使用 mvn 包而不是 mvn build 创建了 mysql 和 Elasticsearch 连接器
  • 我将上述连接器放在名为 C:\Users\ROY\confluent-6.0.0\share\kafka 的文件夹中 我下载的其他一些连接器更坚固。我将 connect-distributed.properties 中的 plugin.path 变量设置为: plugin.path=C://Users//ROY//confluent-6.0.0//share//kafka,/mnt/c/Users/ROY/confluent-6.0.0/share/kafka
  • 我正在使用 mysqlElasticsearch 作为 docker 容器。

mysql 连接器工作正常并将数据读入主题, 但是当我尝试创建 Elasticsearch 连接器时,我收到以下错误:

...
(io.confluent.connect._Elasticsearch_._Elasticsearch_SinkConnectorConfig:354)
[2020-10-16 12:22:27,170] ERROR WorkerSinkTask{id=elastic-login-connector-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:187)
java.lang.NoClassDefFoundError: io/searchbox/action/Action
    at io.confluent.connect._Elasticsearch_._Elasticsearch_SinkTask.start(_Elasticsearch_SinkTask.java:74)
    at io.confluent.connect._Elasticsearch_._Elasticsearch_SinkTask.start(_Elasticsearch_SinkTask.java:48)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:302)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:193)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:235)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: io.searchbox.action.Action
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 11 more
...

有人可以协助解决问题并对错误进行解释吗?

谢谢

罗伊

【问题讨论】:

    标签: mysql elasticsearch apache-kafka confluent-platform


    【解决方案1】:

    好的,我发现了问题。在弹性搜索连接器源代码上运行“mvn 包”后,我应该将整个目录复制到 Kafka 的 /share 目录中,而不是只取一个 .jar 文件。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 2021-09-17
      相关资源
      最近更新 更多