Apache kafka ES接收器连接器debezium因错误而停止
要了解cdc的工作原理, 我一直在使用debezium站点提供的以下示例 在本例中,如果我尝试将接收器连接器从mongo db更改为elastic search,然后启动es接收器连接器。它显示以下错误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
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"
}
}