Avro"同步无效!" nextRawBlock()中的异常

时间:2016-10-18 07:32:54

标签: networking streaming avro

我正在从符合S3标准的对象存储中通过网络传输Avro编码文件,并尝试读取它并将其放入某些数据结构中。

问题:我有时遇到的问题(在连续运行的测试节点中,在一两天内一两次)是文件的一半,它会遇到此异常{{1} } Invalid sync!类中的nextRawBlock()方法。

我想检测其根本原因并修复。我一直在努力 在测试应用程序中重现此但无法成功完成此操作。我正在寻找

的想法
  • 可能导致这种情况的原因是什么?

  • 任何更好的方法来重现这一点。

更多详情

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

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

c)该文件包含一个标题部分,其中包含一个Long计数和一个String to Integer的KV Map。之后它包含一个记录数组,其中每个记录包含一个String和一个long数组。该模式使用Avro的union构造来实现此功能。

d)文件中的记录数平均约为5M

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

f)文件通过单独的流程上传到商店。

其他观察: a)失败后,应用关闭流并尝试再次下载并读取流。我观察到的是,这会使节点处于高老状态,从而减慢用户请求。

0 个答案:

没有答案