1

Hadoop 新手...我有一系列 HDFS 目录,其命名约定为 filename.seq。每个目录都包含一个索引、数据和bloom文件。这些具有二进制内容,并且似乎是 SequenceFiles(SEQ 开头的标题)。我想知道结构/模式。我阅读的所有内容都是指阅读单个序列文件,因此我不确定如何阅读这些文件或它们是如何产生的。谢谢。

更新:我已经尝试过推荐的用于在文件上流式传输和输出文本的工具,但没有一个有效:

hadoop fs -text /path/to/hdfs-filename.seq/data | head

hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.1.2.jar \
-input /path/to/hdfs-filename.seq/data \
-output /tmp/outputfile \
-mapper "/bin/cat" \
-reducer "/bin/wc -l" \
-inputformat SequenceFileAsTextInputFormat

错误是:

ERROR streaming.StreamJob: Job not successful. Error: NA
4

1 回答 1

1

SEQ 标头确认了 hadoop 序列文件。(我从未见过的一件事是你提到的bloom文件。)

典型的序列文件的结构/模式是:

  • 标头(版本、键类、值类、压缩、压缩代码、元数据)
  • 记录
  • 记录长度
  • 密钥长度
  • 核心价值
  • 每几百个字节左右就有一个同步标记。

更多细节:

  1. 这里的描述。
  2. 序列文件阅读器如何读取 hadoop 序列文件?
于 2013-05-27T21:49:17.610 回答