检索 ID 1 的 Avro 架构时出错,未找到主题。;错误代码:40401
Error retrieving Avro schema for id 1, Subject not found.; error code: 40401
Caused by: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema for id 1
Caused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject not found.; error code: 40401
Confluent 版本 4.1.0
我正在使用 KTable 使用来自几个主题(topic_1、topic_2)的数据,加入数据,然后使用 KStream 将数据推送到另一个主题(topic_out) . (Ktable.toStream())
数据为avro格式
当我使用
检查架构时
curl -X GET http://localhost:8081/subjects/
我发现
topic_1-value
topic_1-key
topic_2-value
topic_2-key
topic_out-value
但是 topic_out-key 没有主题。为什么没有创建?
来自topic_out的输出:
kafka-avro-console-consumer --bootstrap-server localhost:9092 --from-beginning --property print.key=true --topic topic_out
"code1 " {"code":{"string":"code1 "},"personid":{"string":"=NA="},"agentoffice":{"string":"lic1 "},"status":{"string":"a"},"sourcesystem":{"string":"ILS"},"lastupdate":{"long":1527240990138}}
我可以看到正在生成密钥,但没有密钥主题。
为什么需要主题和密钥?
我正在将这个主题提供给另一个连接器 (hdfs-sink) 以将数据推送到 hdfs 但它失败并显示以下错误
Caused by: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema for id 5\nCaused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject not found.; error code: 40401
当我查看架构-registry.logs 时,我可以看到:
[2018-05-24 15:40:06,230] INFO 127.0.0.1 - -
[24/May/2018:15:40:06 +0530] "POST /subjects/topic_out-key?deleted=true HTTP/1.1" 404 51 9 (io.confluent.rest-utils.requests:77)
知道为什么没有创建主题 topic_out-key 吗?
any idea why the subject topic_out-key not being created
因为你的 Kafka Streams 输出的 Key 是一个字符串,而不是一个 Avro 编码的字符串。
您可以验证使用 kafka-console-consumer
代替并添加 --property print.value=false
并且在打印值时与同一命令相比没有看到任何特殊字符(这表明数据是二进制 Avro)
对于 Kafka Connect,您必须为 key.converter
属性 使用 Kafka 的 StringConverter class 而不是 Confluent Avro
Caused by: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema for id 1
Caused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject not found.; error code: 40401
Confluent 版本 4.1.0
我正在使用 KTable 使用来自几个主题(topic_1、topic_2)的数据,加入数据,然后使用 KStream 将数据推送到另一个主题(topic_out) . (Ktable.toStream())
数据为avro格式
当我使用
检查架构时curl -X GET http://localhost:8081/subjects/
我发现
topic_1-value
topic_1-key
topic_2-value
topic_2-key
topic_out-value
但是 topic_out-key 没有主题。为什么没有创建?
来自topic_out的输出:
kafka-avro-console-consumer --bootstrap-server localhost:9092 --from-beginning --property print.key=true --topic topic_out
"code1 " {"code":{"string":"code1 "},"personid":{"string":"=NA="},"agentoffice":{"string":"lic1 "},"status":{"string":"a"},"sourcesystem":{"string":"ILS"},"lastupdate":{"long":1527240990138}}
我可以看到正在生成密钥,但没有密钥主题。
为什么需要主题和密钥?
我正在将这个主题提供给另一个连接器 (hdfs-sink) 以将数据推送到 hdfs 但它失败并显示以下错误
Caused by: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema for id 5\nCaused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject not found.; error code: 40401
当我查看架构-registry.logs 时,我可以看到:
[2018-05-24 15:40:06,230] INFO 127.0.0.1 - -
[24/May/2018:15:40:06 +0530] "POST /subjects/topic_out-key?deleted=true HTTP/1.1" 404 51 9 (io.confluent.rest-utils.requests:77)
知道为什么没有创建主题 topic_out-key 吗?
any idea why the subject topic_out-key not being created
因为你的 Kafka Streams 输出的 Key 是一个字符串,而不是一个 Avro 编码的字符串。
您可以验证使用 kafka-console-consumer
代替并添加 --property print.value=false
并且在打印值时与同一命令相比没有看到任何特殊字符(这表明数据是二进制 Avro)
对于 Kafka Connect,您必须为 key.converter
属性 使用 Kafka 的 StringConverter class 而不是 Confluent Avro