【问题标题】:Failed to find any class that implements Connector and which name matches com.mongodb.kafka.connect.MongoSinkConnector找不到任何实现 Connector 且名称与 com.mongodb.kafka.connect.MongoSinkConnector 匹配的类
【发布时间】:2022-02-17 00:16:27
【问题描述】:

我不使用confluent,只使用apache kafka,已经添加了mongo插件,得到.../connector-plugins响应,列出MongoSinkConnector

[
{
    "class": "com.mongodb.kafka.connect.MongoSinkConnector",
    "type": "sink",
    "version": "1.5.0"
},
{
    "class": "com.mongodb.kafka.connect.MongoSourceConnector",
    "type": "source",
    "version": "1.5.0"
}...

]

当我使用以下帖子时,我得到了错误:

请求:

{
"name": "mongodb-sink",
"config": {
    "connector.class": "com.mongodb.kafka.connect.MongoSinkConnector",
    "tasks.max": "1",
    "topics": "portalesMCor.db_portales.user",
    "connection.uri": "mongodb://tiastest.mti:27017",
    "database": "Big_Data",
    "collection": "users",
    "delete.on.null.values": false
}

}

回复:

{
"error_code": 500,
"message": "Failed to find any class that implements Connector and which name matches com.mongodb.kafka.connect.MongoSinkConnector, available connectors are: PluginDesc{klass=class io.debezium.connector.db2.Db2Connector, name='io.debezium.connector.db2.Db2Connector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-db2/'}, PluginDesc{klass=class io.debezium.connector.mongodb.MongoDbConnector, name='io.debezium.connector.mongodb.MongoDbConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-mongodb/'}, PluginDesc{klass=class io.debezium.connector.mysql.MySqlConnector, name='io.debezium.connector.mysql.MySqlConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-mysql/'}, PluginDesc{klass=class io.debezium.connector.oracle.OracleConnector, name='io.debezium.connector.oracle.OracleConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-oracle/'}, PluginDesc{klass=class io.debezium.connector.postgresql.PostgresConnector, name='io.debezium.connector.postgresql.PostgresConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-postgres/'}, PluginDesc{klass=class io.debezium.connector.sqlserver.SqlServerConnector, name='io.debezium.connector.sqlserver.SqlServerConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-sqlserver/'}, PluginDesc{klass=class io.debezium.connector.vitess.VitessConnector, name='io.debezium.connector.vitess.VitessConnector', version='1.5.0.Final', encodedVersion=1.5.0.Final, type=source, typeName='source', location='file:/kafka/connect/debezium-connector-vitess/'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='2.7.0', encodedVersion=2.7.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', version='2.7.0', encodedVersion=2.7.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorCheckpointConnector, name='org.apache.kafka.connect.mirror.MirrorCheckpointConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, name='org.apache.kafka.connect.mirror.MirrorHeartbeatConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorSourceConnector, name='org.apache.kafka.connect.mirror.MirrorSourceConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', version='2.7.0', encodedVersion=2.7.0, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='2.7.0', encodedVersion=2.7.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='2.7.0', encodedVersion=2.7.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='2.7.0', encodedVersion=2.7.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='2.7.0', encodedVersion=2.7.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='2.7.0', encodedVersion=2.7.0, type=source, typeName='source', location='classpath'}"

}

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    根据返回的错误,您的工作器上有以下连接器:

    io.debezium.connector.db2.Db2Connector
    io.debezium.connector.mongodb.MongoDbConnector
    io.debezium.connector.mysql.MySqlConnector
    io.debezium.connector.oracle.OracleConnector
    io.debezium.connector.postgresql.PostgresConnector
    io.debezium.connector.sqlserver.SqlServerConnector
    io.debezium.connector.vitess.VitessConnector
    org.apache.kafka.connect.file.FileStreamSinkConnector
    org.apache.kafka.connect.file.FileStreamSourceConnector
    org.apache.kafka.connect.mirror.MirrorCheckpointConnector
    org.apache.kafka.connect.mirror.MirrorHeartbeatConnector
    org.apache.kafka.connect.mirror.MirrorSourceConnector
    org.apache.kafka.connect.tools.MockConnector
    org.apache.kafka.connect.tools.MockSinkConnector
    org.apache.kafka.connect.tools.MockSourceConnector
    org.apache.kafka.connect.tools.SchemaSourceConnector
    org.apache.kafka.connect.tools.VerifiableSinkConnector
    org.apache.kafka.connect.tools.VerifiableSourceConnector
    

    那么也许您正在针对不同的工作人员运行/connector-plugins REST 调用? 或者您是否有一个分布式工作器集群,其中没有安装 MongoDB 插件?

    【讨论】:

    • 但是当你发送错误的类时:“connector.class”:“com.mongodb.kafka.connect.MongoConnector” 答案是:“找不到任何实现连接器且名称匹配的类com.mongodb.kafka.connect.MongoConnector,可用的连接器有:PluginDesc {klass = class com.mongodb.kafka.connect.MongoSinkConnector, name = 'com.mongodb.kafka .connect.MongoSinkConnector', version =' 1.5.0' , encodedVersion = 1.5.0, type = sink, typeName =' sink', location =' file:/kafka/connect/mongo-connector/'} .....
    • @Alfredo 正如所回答的那样,似乎一名工作人员已安装并可用(该评论中的服务器),但另一名工作人员没有(您问题中的服务器)。您必须重新启动工作人员以获取新插件
    【解决方案2】:

    我在尝试使用 Confluent 的 S3SinkConnector 时遇到了类似的错误。我在这里发布我的问题和解决方案,因为此页面显示在搜索结果中,并且那里缺乏有用的信息。

    实际上发生的情况是我在稍微修改其源代码后重新编译了连接器,因为原始版本并没有完全符合我的要求。但是当我尝试启动连接器时,我收到了错误消息Failed to find any class that implements Connector and which name matches io.confluent.connect.s3.S3SinkConnector。即使相关的.jar 在我的插件路径中,我也可以通过jar -tvf 看到.jar 包含io/confluent/connect/s3/S3SinkConnector.class

    我的想法已经用完了,所以我尝试将 .jar 文件移动到我的 kafka 安装的 libs 目录中,即移动到 /path/to/kafka_2.12-2.6.2/libs。然后我开始收到一条不同的错误消息:

    java.lang.UnsupportedClassVersionError: io/confluent/connect/s3/S3SinkConnector has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    

    因此解决方案是使用旧版本的 Java 重新编译文件(特别是使用 javac -release 8 的 Java 8,根据 these instructions。)现在它可以工作了!

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      • 2021-05-21
      • 2022-11-11
      • 2020-04-18
      • 2021-04-30
      相关资源
      最近更新 更多