Networking Avro“;无效同步&引用;nextRawBlock()中的异常

Networking Avro“;无效同步&引用;nextRawBlock()中的异常,networking,streaming,avro,Networking,Streaming,Avro,我正在通过网络从S3兼容的对象存储中传输一个Avro编码的文件,并尝试读取它并将其放入某种数据结构中 问题:我有时面临的问题(在连续运行的测试节点中,一天或两天内出现一次或两次)是在文件运行到一半时遇到此异常无效同步 我想找出这个问题的根本原因并加以解决。我一直在努力 在测试应用程序中复制此内容,但无法成功执行此操作。我正在寻找有关的想法 什么可能导致这种情况 有没有更好的复制方法 更多详细信息 a) Avro文件没有下载到磁盘,我使用S3ObjectInputStream获得文件流的句柄,

我正在通过网络从S3兼容的对象存储中传输一个Avro编码的文件,并尝试读取它并将其放入某种数据结构中

问题:我有时面临的问题(在连续运行的测试节点中,一天或两天内出现一次或两次)是在文件运行到一半时遇到此异常
无效同步DataFileStream
类中的
nextRawBlock()
方法中的code>

我想找出这个问题的根本原因并加以解决。我一直在努力 在测试应用程序中复制此内容,但无法成功执行此操作。我正在寻找有关的想法

  • 什么可能导致这种情况

  • 有没有更好的复制方法

更多详细信息

a) Avro文件没有下载到磁盘,我使用S3ObjectInputStream获得文件流的句柄,并将其提供给DataFileStream构造函数 然后直接从流中读取

b) 该应用程序尝试从Avro编码的文件中批量读取记录 一次有500条记录

c) 该文件包含一个包含长计数的头部分和字符串到整数的KV映射。之后,它包含一个记录数组,其中每个记录包含一个字符串和一个长数组。该模式使用Avro的联合构造来实现这一点

d) 文件中的记录数平均约为500万条

e) 整个下载在单独的线程中进行,而不是在任何用户请求中进行

f) 该文件通过单独的进程上载到存储

其他意见: a) 失败后,应用程序关闭流,并尝试再次下载和读取流。我所观察到的是,这会使节点进入一个高旧状态,从而减慢用户请求的速度