是否可以检查hdfs上的文件是否是没有使用异常(mis)的sequencefile?

rnmwe5a2  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(382)

我想读一本书 SequenceFile 从hdfs到客户端应用程序。我可以用 SequenceFile.Reader 而且效果很好。但是,是否也可以检查文件是否是 SequenceFile 其他来自分析抛出的 IOException 什么?

h7appiyu

h7appiyu1#

我仔细研究了hadoop文档、源代码和web,找到了一个解决方案: SequenceFile 从四字节的头读取开始 SEQn 哪里 n 是文件的版本(一个正数,一个字节,但从不大于6)。因此,对于检查,可以执行以下操作:
以普通方式打开文件 FSDataInputStreamFileSystem.open 将前三个字节作为ascii字符串读取
检查他们是否说 SEQ -如果没有,就没有 SequenceFile 检查下一个字节是否小于或等于6,如果大于0,如果是-> SequenceFile 这应该是sequencefile中的实用方法,例如。 SequenceFile.isSequenceFile 编辑:我发布了一个关于这个的jira:hdfs-7378

相关问题