mysql - 设置Kafka连接器管道时出错

标签 mysql elasticsearch apache-kafka confluent-platform

设置Kafka连接器管道时出错
环境概述:
Docker容器

  • docker run --name some-mysql -e MYSQL_ROOT_PASSWORD = mypw -d mysql:最新的
  • docker run -d --name Elasticsearch -p 9200:9200 -p 9300:9300 -e“discovery.type = single-node” Elasticsearch:7.9.2

  • 操作系统
  • WSL2 ON-Windows-10版本1909(操作系统内部版本18363.1139)

  • 卡夫卡版
  • confluent-6.0.0

  • 你好
    我正在阅读Neha Narkhede,Gwen Shapira和Todd Palino撰写的《卡夫卡:权威指南》
    我到达了《连接器示例:从MySQL到Elasticsearch》一章(第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://用户//ROY//confluent-6.0.0//share//kafka,/mnt/c/Users/ROY/confluent-6.0.0/share/kafka
  • 我正在使用mysql和Elasticsearch作为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
    ...
    
    有人可以协助解决问题并提供错误的解释吗?
    谢谢
    罗伊

    最佳答案

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

    关于mysql - 设置Kafka连接器管道时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64388290/

    相关文章:

    apache-kafka - Apache Flink State Store 与 Kafka Streams

    mysql - 连接创建错误的结果查询

    html - 将 mysql 结果(数字)转换为其他内容

    html - HTML 格式中出现的特殊字符

    elasticsearch - Elasticsearch没有获得足够的文件描述符

    javascript - 如何过滤掉复杂查询中的文本字段?

    elasticsearch - 流畅的date_range映射,无需在POCO上定义Nest.DateRange属性

    apache-kafka - Kafka是否支持主题或消息的优先级?

    java - 在 Kafka Consumer API 中实现 Deserializer 和 Serde 有什么区别?

    Mysql sum group by performance 9M记录