繁体   English   中英

Kafka Connect Elasticsearch-NoSuchMethodError

[英]Kafka Connect Elasticsearch - NoSuchMethodError

我正在尝试从Confluent运行kafka-connect-elasticsearch插件,以将主题从Kafka( V0.11.0.1 )直接流式传输到Elasticsearch中(而无需在两者之间放置Logstash)。

我使用Maven构建连接器-

$ cd kafka-connect-elasticsearch
$ mvn clean package

然后,我创建了require配置文件-

name=es-cluster-lab
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=filebeats-test
topic.index.map=filebeats-test:kafka_test_index
key.ignore=true
schema-ignore=true
connection.url=http://elastic:9200
type.name=log

根据新的Kafka类路径隔离规范,我还在我的connect-standalone.properties文件中添加了以下行-

plugin.path=/home/kafka/kafka-connect-elasticsearch-3.3.0/target/kafka-connect-elasticsearch-3.3.0-development/share/java/kafka-connect-elasticsearch/

我去运行脚本...

bin/connect-standalone.sh config/connect-standalone.properties config/elasticsearch-connect.properties

...并收到以下错误。

[2017-09-14 16:08:26,599] INFO Loading plugin from: /home/kafka/kafka-connect-elasticsearch-3.3.0/target/kafka-connect-elasticsearch-3.3.0-development/share/java/kafka-connect-elasticsearch/slf4j-api-1.7.25.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:176)
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
        at org.reflections.Reflections.expandSuperTypes(Reflections.java:380)
        at org.reflections.Reflections.<init>(Reflections.java:126)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanPluginPath(DelegatingClassLoader.java:221)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins(DelegatingClassLoader.java:198)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.registerPlugin(DelegatingClassLoader.java:190)
        at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders(DelegatingClassLoader.java:150)
        at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:47)
        at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:68)

我还尝试将JAR文件移动到/app/kafka/libs directory (默认CLASSPATH)中,甚至尝试创建子目录/app/kafka/libs/connect_libs并将其手动添加到我的CLASSPATH环境变量中。

除了将Logstash放在Kafka和Elastic之间,不知道下一步是什么。

尝试在构建之前将番石榴版本更改为20

我认为您在插件路径的路径末尾缺少星号'*'

plugin.path=/home/kafka/kafka-connect-elasticsearch-3.3.0/target/kafka-connect-elasticsearch-3.3.0-development/share/java/kafka-connect-elasticsearch/*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM