我想SequenceFile
从客户端应用程序中读取来自 HDFS 的特定内容。我可以通过使用来做到这一点SequenceFile.Reader
,它工作正常。但是是否也可以通过分析抛出的s来检查文件是否是其他文件?SequenceFile
IOException
问问题
506 次
1 回答
2
我翻遍了 Hadoop 文档、源代码和网络并找到了一个解决方案:SequenceFile
从一个四字节标题开始读取文件的版本SEQn
在哪里n
(一个正数,一字节数字,但从不大于 6)。因此,对于检查,可以执行以下操作:
FSDataInputStream
正常打开文件FileSystem.open
- 将前三个字节读取为 ASCII 字符串
- 检查他们是否说
SEQ
- 如果没有,不SequenceFile
- 检查下一个字节是否小于等于6,大于0,如果是->
SequenceFile
这应该是 SequenceFile 中的一个实用方法,例如SequenceFile.isSequenceFile
编辑:我发布了一个关于这个的 JIRA:HDFS-7378
于 2014-11-07T12:30:13.557 回答