gpt4 book ai didi

hadoop - 是否可以在不(误)使用异常的情况下检查 HDFS 上的文件是否为 SequenceFile?

转载 作者:可可西里 更新时间:2023-11-01 14:49:47 29 4
gpt4 key购买 nike

我想从客户端应用程序的 HDFS 中读取特定的 SequenceFile。我可以使用 SequenceFile.Reader 来做到这一点,它工作正常。但是是否也可以通过分析抛出的 IOException 来检查是否一个文件 SequenceFile

最佳答案

我翻遍了 Hadoop 文档、源代码和网络,找到了一个解决方案:SequenceFile 以一个四字节的 header 开头,读取 SEQn,其中 n 是文件的版本(一个正的单字节数字,但绝不会大于 6)。因此,对于检查,可以执行以下操作:

  1. 使用 FileSystem.open 打开文件作为普通 FSDataInputStream
  2. 读取前三个字节作为ASCII字符串
  3. 检查他们是否说 SEQ - 如果没有,则没有 SequenceFile
  4. 检查下一个字节是否小于等于 6,大于 0,如果是 -> SequenceFile

这应该是 SequenceFile 中的实用方法,例如SequenceFile.isSequenceFile

编辑:我发布了一个关于这个的 JIRA:HDFS-7378

关于hadoop - 是否可以在不(误)使用异常的情况下检查 HDFS 上的文件是否为 SequenceFile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800482/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com