Can't start Confluent Kafka Connect on Windows (NoClassDefFoundError: io/confluent/connect/storage/StorageSinkConnectorConfig)
Can't start Confluent Kafka Connect on Windows (NoClassDefFoundError: io/confluent/connect/storage/StorageSinkConnectorConfig)
如标题所述,从命令行启动 ElasticSearch 接收器连接器时我得到 NoClassDefFoundError: io/confluent/connect/storage/StorageSinkConnectorConfig
。
我通过解压缩 C:\
中的 confluent-oss-5.0.0-2.11.zip
文件安装了 Confluent 包。
当我执行以下命令(或相对路径的任意组合)时,Zookeeper、Kafka broker 和 ElasticSearch 已启动并且 运行:
> C:\confluent-5.0.0\bin\windows\connect-standalone.bat C:\confluent-5.0.0\etc\kafka\connect-standalone.properties C:\confluent-5.0.0\etc\kafka-connect-elasticsearch\quickstart-elasticsearch.properties
这是我的 connect-standalone.properties
文件:
bootstrap.servers=localhost:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
plugin.path=/confluent-5.0.0/share/java/
还有我的 quickstart-elasticsearch.properties
文件:
name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=test2
key.ignore=true
connection.url=http://localhost:9200
type.name=kafka-connect
我寻找了类似的问题,但他们似乎对 plugin.path
属性 的 relative/absolute 路径有问题,我认为设置正确,因为如果我更改它,我会收到关于找不到 ElasticSearchSink class.
我知道 Confluent 不完全支持 Windows,但是有人知道这个问题的解决方案吗?谢谢!
回答我自己的问题:
显然,Kafka Connect 尝试启动所有插件,但在缺少依赖项时失败。因此,如果您不需要默认安装的插件(HDFS、S3...),您可以从 confluent-5.0.0/share/java/
文件夹中删除这些文件夹。
我仍然收到 NoClassDefFoundError
异常,但它们与 ElasticSearch 连接器无关,所以我忽略了它们,当所有这些错误消息完成打印时,我可以看到 ES 连接器已启动并且我可以看到我索引中的数据。
关于 plugin.path
,我将完整的类 UNIX 路径设置为 /confluent-5.0.0/share/java/
,根目录 (/
) 为 C:
并启动 connect-standalone.bat
来自 /confluent-5.0.0/bin/windows
文件夹。
如标题所述,从命令行启动 ElasticSearch 接收器连接器时我得到 NoClassDefFoundError: io/confluent/connect/storage/StorageSinkConnectorConfig
。
我通过解压缩 C:\
中的 confluent-oss-5.0.0-2.11.zip
文件安装了 Confluent 包。
当我执行以下命令(或相对路径的任意组合)时,Zookeeper、Kafka broker 和 ElasticSearch 已启动并且 运行:
> C:\confluent-5.0.0\bin\windows\connect-standalone.bat C:\confluent-5.0.0\etc\kafka\connect-standalone.properties C:\confluent-5.0.0\etc\kafka-connect-elasticsearch\quickstart-elasticsearch.properties
这是我的 connect-standalone.properties
文件:
bootstrap.servers=localhost:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
plugin.path=/confluent-5.0.0/share/java/
还有我的 quickstart-elasticsearch.properties
文件:
name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=test2
key.ignore=true
connection.url=http://localhost:9200
type.name=kafka-connect
我寻找了类似的问题,但他们似乎对 plugin.path
属性 的 relative/absolute 路径有问题,我认为设置正确,因为如果我更改它,我会收到关于找不到 ElasticSearchSink class.
我知道 Confluent 不完全支持 Windows,但是有人知道这个问题的解决方案吗?谢谢!
回答我自己的问题:
显然,Kafka Connect 尝试启动所有插件,但在缺少依赖项时失败。因此,如果您不需要默认安装的插件(HDFS、S3...),您可以从 confluent-5.0.0/share/java/
文件夹中删除这些文件夹。
我仍然收到 NoClassDefFoundError
异常,但它们与 ElasticSearch 连接器无关,所以我忽略了它们,当所有这些错误消息完成打印时,我可以看到 ES 连接器已启动并且我可以看到我索引中的数据。
关于 plugin.path
,我将完整的类 UNIX 路径设置为 /confluent-5.0.0/share/java/
,根目录 (/
) 为 C:
并启动 connect-standalone.bat
来自 /confluent-5.0.0/bin/windows
文件夹。