【问题标题】:implementation of sink connector in java packagejava包中sink连接器的实现
【发布时间】:2021-02-10 16:24:09
【问题描述】:

我已经启动了 zookeeper、kafka 服务器、kafka 生产者和 kafka 消费者,并且我已经放置了从 confluent 下载的 jdbc sql 连接器 jar 并将 jar 放入路径中,我在连接独立属性中提到了 plugin.path。我有运行 connect-standalone.bat ....\config\connect-standalone.properties ....\config\sink-quickstart-mysql.properties 没有任何错误,但它有很多警告并且它没有开始,但是我的数据没有反映在表格中。我错过了什么?你能帮帮我吗?我有以下警告

                                                                                                    org.reflections.ReflectionsException: could not get type for name io.netty.inter
nal.tcnative.SSLPrivateKeyMethod
        at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312)
        at org.reflections.Reflections.expandSuperTypes(Reflections.java:382)
        at org.reflections.Reflections.<init>(Reflections.java:140)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader$Inte
rnalReflections.<init>(DelegatingClassLoader.java:433)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scan
PluginPath(DelegatingClassLoader.java:325)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scan
UrlsAndAddPlugins(DelegatingClassLoader.java:261)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.init
PluginLoader(DelegatingClassLoader.java:209)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.init
Loaders(DelegatingClassLoader.java:202)
        at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.jav
a:60)
        at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone
.java:79)
Caused by: java.lang.ClassNotFoundException: io.netty.internal.tcnative.SSLPriva
teKeyMethod
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310)
        ... 9 more

【问题讨论】:

    标签: java apache-kafka apache-kafka-connect


    【解决方案1】:

    除非您需要将 kafka 连接到一些奇特的数据源,否则无需自己编写源连接器。像 mysql 这样的流行工具已经很好地涵盖了。 confluent 已经有一个“jdbc-connector”可以满足您的需求。

    https://docs.confluent.io/current/connect/kafka-connect-jdbc/index.html

    您需要一个有效的 kafka-connect 安装,然后您可以通过 HTTP POST 到 kafka 连接 API 将您的 mysql 表“连接”到 kafka。只需在tables.whitelist 属性中指定要用作源的表的逗号分隔列表。例如,像这样的东西......

    curl -X POST $KAFKA_CONNECT_API/connectors -H "Content-Type: application/json" -d '{
          "name": "jdbc_source_mysql_01",
          "config": {
                  "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
                  "connection.url": "jdbc:mysql://mysql:3306/test",
                  "connection.user": "connect_user",
                  "connection.password": "connect_password",
                  "topic.prefix": "mysql-01-",
                  "poll.interval.ms" : 3600000,
                  "table.whitelist" : "test.accounts",
                  "mode":"bulk"
                  }
          }'
    

    【讨论】:

    • 在此链接中,kafka connect 是为 mac 和 linux 提供的。你能告诉如何在 windows 上实现
    • @user14 Kafka Connect 是一个 Java 进程,它并不特定于操作系统。启动脚本存在于 bin/windows 文件夹中
    • @OneCricketeer 我已经为我的 Windows nijanthanravi.wordpress.com/2019/07/14/… 下载了 confluentzip 文件,同时安装 zookeeper 我面临“C:\Progra~1\Java\jdk1.8.0_261”不被识别为内部或外部命令”如何解决这个问题?
    • @user14 你的 Java 安装搞砸了。尝试重新安装最新的 Java 8
    • @OneCricketeer 我已经启动了 zookeeper、kafka 服务器、kafka 生产者和 kafka 消费者,我已经把从 confluent 下载的 jdbc sql 连接器 jar 放到了路径中,我在 connect 中提到了 plugin.path -standalone properties.and 我已经运行 connect-standalone.bat ..\..\config\connect-standalone.properties ..\..\config\sink-quickstart-mysql.properties 没有任何错误,但我的数据不是反映在表格中。我错过了什么?你能帮帮我吗
    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2019-11-09
    • 2019-07-15
    • 2012-05-18
    相关资源
    最近更新 更多