【问题标题】:Use Kafka Connect with jcustenborder / kafka-connect-twitter将 Kafka Connect 与 jcustenborder / kafka-connect-twitter 一起使用
【发布时间】:2021-12-25 00:51:15
【问题描述】:

我正在尝试将 Kafka Connect 与来自 Github 的 jcustenborder 的 kafka-connect-twitter 一起使用,以将 Twitter 推文引入 Kafka。说明说:

mvn clean package
export CLASSPATH="$(find target/ -type f -name '*.jar'| grep '\-package' | tr '\n' ':')"
$CONFLUENT_HOME/bin/connect-standalone connect/connect-avro-docker.properties config/TwitterSourceConnector.properties

export CLASSPATH 行实际上不起作用,运行时不返回任何内容。在 kafka-connect-twitter 存储库中运行 mvn clean package 后,connect avro docker 属性文件似乎想要使用 target/kafka-connect-target/usr/share/kafka-connect 中可用的 jar。

当我跑步时 connect-standalone.sh connect-avro-docker.properties TwitterSourceConnector.properties 在这两个 .properties 存在的目录中,因为 connect-standalone.sh 在路径中,我收到错误:

2021-11-12 18:22:05,267] ERROR Stopping due to error (org.apache.kafka.connect.cli.ConnectStandalone:126)
org.apache.kafka.common.config.ConfigException: Invalid value io.confluent.connect.avro.AvroConverter for configuration key.converter: Class io.confluent.connect.avro.AvroConverter could not be found.
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:744)
    at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:490)
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:483)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:108)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:129)
    at org.apache.kafka.connect.runtime.WorkerConfig.<init>(WorkerConfig.java:452)
    at org.apache.kafka.connect.runtime.standalone.StandaloneConfig.<init>(StandaloneConfig.java:42)
    at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:80)

它没有找到 AvroConverter 所在的罐子。 我正在使用 Kafka 2.13-2.8.0 和 0.3.34 jcustenborder kafka-connect-twitter。

在 Kafka 发行版中,我看不到 AvroConverter 可能存在的罐子。它包括 Kafka Connect 吗? 请注意,我在 iMac 中安装了 Kafka,我没有使用 Docker 来运行 Kafka。

编辑: 我没有使用 avro 属性文件,而是使用了 connect-standalone.properties。虽然日志说它已经加载了番石榴罐:

INFO Loading plugin from: /Users/paupaches/dev/books/kafkabeginnerscourse/kafka-connect/connectors/kafka-connectors-twitter/guava-30.1.1-jre.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:246)
[2021-11-13 10:50:22,992] INFO Registered loader: PluginClassLoader{pluginLocation=file:/Users/paupaches/dev/books/kafkabeginnerscourse/kafka-connect/connectors/kafka-connectors-twitter/guava-30.1.1-jre.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:269)

我得到了错误 ERROR 由于错误而停止 (org.apache.kafka.connect.cli.ConnectStandalone:126) java.lang.NoClassDefFoundError: com/google/common/collect/Multimap

我正在使用 openjdk 17。

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    不必导出CLASSPATH,使用文件connect-standalone.properties 中plugin.path 属性中的“connectors”路径就足够了。 “connectors”目录包含 kafka-connect-twitter 目录,该目录包含在连接器工作副本中运行“mvn clean package”时生成的所有 jar。 最后我用的是openjdk 8,虽然我的Mac也安装了17。

    【讨论】:

    • 你甚至不应该触摸类路径。您应该在工作人员属性中使用 plugin.path 设置
    • 你说得对,不管说明书怎么说,没有必要修改类路径。谢谢,我会编辑我的答案。
    猜你喜欢
    • 2021-05-22
    • 2020-05-26
    • 2020-03-30
    • 2018-11-30
    • 2020-07-09
    • 2018-01-16
    • 2017-07-19
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多