【发布时间】:2018-10-29 11:21:00
【问题描述】:
我正在尝试使用 confluent Kafka s3 连接器,使用 confluent-4.1.1。
s3-sink
"value.converter.schema.registry.url": "http://localhost:8081",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter": "org.apache.kafka.connect.storage.StringConverter"
当我为 s3 接收器运行 Kafka 连接器时,我收到以下错误消息:
ERROR WorkerSinkTask{id=singular-s3-sink-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:172)
org.apache.kafka.connect.errors.DataException: Invalid JSON for array default value: "null"
at io.confluent.connect.avro.AvroData.defaultValueFromAvro(AvroData.java:1649)
at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1562)
at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1443)
at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1443)
at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1323)
at io.confluent.connect.avro.AvroData.toConnectData(AvroData.java:1047)
at io.confluent.connect.avro.AvroConverter.toConnectData(AvroConverter.java:87)
at org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:468)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:301)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:205)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:173)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我的 Schema 只包含 1 个数组类型字段,其架构是这样的
{"name":"item_id","type":{"type":"array","items":["null","string"]},"default":[]}
我可以使用 kafka-avro-console-consumer 命令查看反序列化消息。我见过similar question,但在他的情况下,他也在使用 Avro 序列化程序作为密钥。
./confluent-4.1.1/bin/kafka-avro-console-consumer --topic singular_custom_postback --bootstrap-server localhost:9092 -max-messages 2
"item_id":[{"string":"15552"},{"string":"37810"},{"string":"38061"}]
"item_id":[]
我不能把我从控制台消费者那里得到的全部输出,因为它包含敏感的用户信息,所以我在我的架构中添加了唯一的数组类型字段。
提前致谢。
【问题讨论】:
-
您使用 5.0 S3 连接是否有同样的错误?
-
你能把你的问题编辑成你从控制台消费者看到的输出吗?
-
@cricket_007 我已经添加了控制台消费者的输出。不,我没有在 5.0 s3 连接器上测试它,因为我们在生产中使用 4.1.1。这是特定于版本的问题吗?
标签: apache-kafka avro apache-kafka-connect confluent-platform confluent-schema-registry