我正在尝试使用Github中jcustenborder的Kafka Connect with Kafka-Connect-Twitter将Twitter tweets引入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
导出类路径行实际上不起作用,运行时不返回任何内容。在kafka-connect-twitter存储库中运行mvn clean package之后,connect avro docker属性文件似乎想要使用target/Kafka-connect-target/usr/share/Kafka-connect中可用的jar。
当我运行connect-standalone.shconnect-avro-docker.propertiesTwitterSourceConnector.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)
我收到错误错误由于错误而停止(org.apache.kafka.connect.cli.ConnectStandalone:126) java.lang.NoClassDefFoundError: com/google/common/collect/Multimap
我正在使用openjdk 17。
不需要使用插件中的“连接器”路径导出CLASSPATH。文件connect standalone中的path属性。属性就足够了。“connectors”目录包含kafka connect twitter目录,其中包含在连接器工作副本中运行“mvn clean package”时生成的所有jar。最后我使用了openjdk 8,尽管我的Mac上也安装了17。