Apache Avro SchemaParseException:非法初始字符问题求助
Apache Avro SchemaParseException:非法初始字符问题排查
配置应用Sink时遇到Avro解析错误,解析模式触发SchemaParseException,提示非法初始字符。异常栈信息如下:
Exception in thread "lakehouse-io-1-1" org.apache.avro.SchemaParseException: Illegal initial character: {"type":"record","name":"blah_schema","fields":[{"name":"blah_string","type":"string"},{"name":"blah_int","type":"int"}]} at org.apache.avro.Schema.validateName(Schema.java:1562) at org.apache.avro.Schema.access$400(Schema.java:91) at org.apache.avro.Schema$Name.<init>(Schema.java:701) at org.apache.avro.Schema$Names.get(Schema.java:1528) at org.apache.avro.Schema.parse(Schema.java:1636) at org.apache.avro.Schema$Parser.parse(Schema.java:1430) at org.apache.avro.Schema$Parser.parse(Schema.java:1418) at org.apache.pulsar.ecosystem.io.lakehouse.sink.SinkWriter.parseRecordSchema(SinkWriter.java:124) at org.apache.pulsar.ecosystem.io.lakehouse.sink.SinkWriter.run(SinkWriter.java:203) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833)
使用的模式如下:
{"type":"record","name":"blah_schema","fields":[{"name":"blah_string","type":"string"},{"name":"blah_int","type":"int"}]}
该模式符合Avro命名规范,已检查周围字符和编码,未发现异常,但错误仍存在。希望了解错误原因及解决方法,或得到相关问题的排查建议。
已尝试的解决方法:
- 测试不同模式:尝试多种类似格式的模式,问题均存在
- 验证编码:确认模式文件为UTF-8编码,符合Avro要求
- 确认模式准确性:确保传递给解析器的模式与定义完全一致,未被修改
尽管做了以上尝试,问题仍未解决,希望获得更多排查方向。
内容的提问来源于stack exchange,提问作者wkargul
相关产品推荐
相关产品推荐

