hadoop新手…我有一系列命名约定为filename.seq的hdfs目录。每个目录包含一个索引、数据和文件。这些文件包含二进制内容,看起来像是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
1条答案
按热度按时间63lcw9qa1#
seq头确认hadoop序列文件(有一件事我从来没有见过,那就是你提到的布鲁姆档案。)
典型序列文件的结构/模式为:
头(版本、键类、值类、压缩、压缩代码、元数据)
记录
记录长度
密钥长度
关键字值
每隔大约100个字节就有一个同步标记。
有关详细信息:
请参见此处的描述。
序列文件读取器和如何读取hadoop序列文件?