我正在尝试使用Kafka Connect和kafka-connect-twitter在Github的jcustenborder中将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
导出CLASSPATH行实际上不起作用,并且在运行时不返回任何内容。connect avro docker属性文件在kafka-connect-twitter存储库中运行mvn clean包后,似乎希望使用target/kafka-connect-target/usr/share/kafka-connect中提供的jars。
当我在这两个.properties所在的目录中运行connect-standalone.sh connect-avro-docker.properties TwitterSourceConnector.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所在的jar。我使用的是Kafka 2.13-2.8.0和0.3.34 jcustenborder kafka-connect-twitter。
在Kafka发行版中,我看不到AvroConverter可能所在的任何地方。包含Kafka连接吗?请注意,我在iMac中使用的是Kafka的安装,而不是运行Kafka的Docker。
编辑:我没有使用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 Stopping to (org.apache.kafka.connect.cli.ConnectStandalone:126) java.lang.NoClassDefFoundError: com/google/common/collect/Multimap
我使用的是openjdk 17。
发布于 2021-11-13 21:05:39
不需要导出CLASSPATH,在文件connect-standalone.properties的plugin.path属性中使用"connectors“路径就足够了。"connectors“目录包含kafka-connect-twitter目录,该目录包含在连接器工作副本中运行"mvn clean package”时生成的所有jars。最后,我使用了openjdk 8,尽管我的Mac上也安装了17。
https://stackoverflow.com/questions/69946876
复制相似问题