我想从客户端应用程序中读取HDFS中的特定SequenceFile
。我可以使用SequenceFile.Reader
来做到这一点,它运行正常。但也可以通过分析抛出的SequenceFile
来检查 文件 是否只有IOException
?
答案 0 :(得分:2)
我挖掘了Hadoop文档,源代码和Web并找到了一个解决方案:SequenceFile
以一个四字节标题读取SEQn
开头,其中n
是文件的版本(一个正数,一个字节的数字,但绝不会超过6)。因此,对于检查,可以执行以下操作:
FSDataInputStream
FileSystem.open
打开文件
SEQ
- 如果没有,请SequenceFile
SequenceFile
这应该是SequenceFile中的实用方法,例如SequenceFile.isSequenceFile