我想读一本书 SequenceFile 从hdfs到客户端应用程序。我可以用 SequenceFile.Reader 而且效果很好。但是,是否也可以检查文件是否是 SequenceFile 其他来自分析抛出的 IOException 什么?
SequenceFile
SequenceFile.Reader
IOException
h7appiyu1#
我仔细研究了hadoop文档、源代码和web,找到了一个解决方案: SequenceFile 从四字节的头读取开始 SEQn 哪里 n 是文件的版本(一个正数,一个字节,但从不大于6)。因此,对于检查,可以执行以下操作:以普通方式打开文件 FSDataInputStream 与 FileSystem.open 将前三个字节作为ascii字符串读取检查他们是否说 SEQ -如果没有,就没有 SequenceFile 检查下一个字节是否小于或等于6,如果大于0,如果是-> SequenceFile 这应该是sequencefile中的实用方法,例如。 SequenceFile.isSequenceFile 编辑:我发布了一个关于这个的jira:hdfs-7378
SEQn
n
FSDataInputStream
FileSystem.open
SEQ
SequenceFile.isSequenceFile
1条答案
按热度按时间h7appiyu1#
我仔细研究了hadoop文档、源代码和web,找到了一个解决方案:
SequenceFile
从四字节的头读取开始SEQn
哪里n
是文件的版本(一个正数,一个字节,但从不大于6)。因此,对于检查,可以执行以下操作:以普通方式打开文件
FSDataInputStream
与FileSystem.open
将前三个字节作为ascii字符串读取检查他们是否说
SEQ
-如果没有,就没有SequenceFile
检查下一个字节是否小于或等于6,如果大于0,如果是->SequenceFile
这应该是sequencefile中的实用方法,例如。SequenceFile.isSequenceFile
编辑:我发布了一个关于这个的jira:hdfs-7378