Apache kafka ES接收器连接器debezium因错误而停止

Apache kafka ES接收器连接器debezium因错误而停止,apache-kafka,apache-kafka-connect,debezium,Apache Kafka,Apache Kafka Connect,Debezium,要了解cdc的工作原理, 我一直在使用debezium站点提供的以下示例 在本例中,如果我尝试将接收器连接器从mongo db更改为elastic search,然后启动es接收器连接器。它显示以下错误 Caused by: org.apache.kafka.connect.errors.DataException: JsonConverter with schemas.enable requires "schema" and "payload" fields and may not conta

要了解cdc的工作原理, 我一直在使用debezium站点提供的以下示例

在本例中,如果我尝试将接收器连接器从mongo db更改为elastic search,然后启动es接收器连接器。它显示以下错误

Caused by: org.apache.kafka.connect.errors.DataException: JsonConverter with schemas.enable requires "schema" and "payload" fields and may not contain additional fields. If you are trying to deserialize plain JSON data, set schemas.enable=false in your converter configuration.
Mysql Debezium源连接器的属性如下(请忽略更正url)

}

本例中使用的是弹性搜索接收器连接器

弹性水槽连接器的属性如下所示(请忽略更正url)

}


请在这方面帮助我。

因为错误消息暗示您可能在阅读的主题中存储了没有模式的JSON消息。您需要在源端启用它,或者在接收器端禁用它


请检查此项以了解mor详细信息。

在配置中,您需要按照错误消息的指示执行,并设置
架构。enable=false
。使用本文中的示例,而不是:

{
    "name": "mongodb-sink",
    "config": {
        "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
        "tasks.max": "1",
        "topics": "final_ddd_aggregates",
        "mongodb.connection.uri": "mongodb://mongodb:27017/inventory?w=1&journal=true",
        "mongodb.collection": "customers_with_addresses",
        "mongodb.document.id.strategy": "at.grahsl.kafka.connect.mongodb.processor.id.strategy.FullKeyStrategy",
        "mongodb.delete.on.null.values": true
    }
}
你应该:

{
    "name": "mongodb-sink",
    "config": {
        "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
        "tasks.max": "1",
        "topics": "final_ddd_aggregates",
        "mongodb.connection.uri": "mongodb://mongodb:27017/inventory?w=1&journal=true",
        "mongodb.collection": "customers_with_addresses",
        "mongodb.document.id.strategy": "at.grahsl.kafka.connect.mongodb.processor.id.strategy.FullKeyStrategy",
        "mongodb.delete.on.null.values": true,
        "value.converter": "org.apache.kafka.connect.json.JsonConverter",
        "value.converter.schemas.enable": "false"
        "key.converter": "org.apache.kafka.connect.json.JsonConverter",
        "key.converter.schemas.enable": "false"
    }
}

要了解有关转换器等的更多信息,请参见并

您能否简要介绍我如何在接收器端禁用此功能,因为主题源是正在发布它的kstream代码。嘿,Robin,似乎是谁误导了这个问题,事实上,mongodb接收器连接器可以像示例中提到的那样正常工作。因此,mongodb接收器没有问题,在没有转换器的情况下也可以正常工作。问题是关于弹性接收器连接器的,我从其他示例中引用了它。您能用源和接收器连接器配置的详细信息更新您的问题吗,我们可以从这里开始。我的答案基于您引用的错误消息。Hey@Robin按照指示,我已使用源和接收器属性以及虚拟url连接器更新了问题。您的ES接收器中有
“value.converter.schemas.enable”:“true”,
。您需要将其设置为
“value.converter.schemas.enable”:“false”
(请参阅我当前答案中的示例)。
{
    "name": "mongodb-sink",
    "config": {
        "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
        "tasks.max": "1",
        "topics": "final_ddd_aggregates",
        "mongodb.connection.uri": "mongodb://mongodb:27017/inventory?w=1&journal=true",
        "mongodb.collection": "customers_with_addresses",
        "mongodb.document.id.strategy": "at.grahsl.kafka.connect.mongodb.processor.id.strategy.FullKeyStrategy",
        "mongodb.delete.on.null.values": true
    }
}
{
    "name": "mongodb-sink",
    "config": {
        "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
        "tasks.max": "1",
        "topics": "final_ddd_aggregates",
        "mongodb.connection.uri": "mongodb://mongodb:27017/inventory?w=1&journal=true",
        "mongodb.collection": "customers_with_addresses",
        "mongodb.document.id.strategy": "at.grahsl.kafka.connect.mongodb.processor.id.strategy.FullKeyStrategy",
        "mongodb.delete.on.null.values": true,
        "value.converter": "org.apache.kafka.connect.json.JsonConverter",
        "value.converter.schemas.enable": "false"
        "key.converter": "org.apache.kafka.connect.json.JsonConverter",
        "key.converter.schemas.enable": "false"
    }
}