Hadoop排序示例失败,“不是SequenceFile”。如何设置SequenceFile

时间:2013-04-19 08:32:26

标签: hadoop

我正在尝试运行 bin / hadoop jar hadoop-examples-1.0.4.jar排序输入输出

但是得到一个错误“java.io.IOException:hdfs:// master:9000 / usr / ubuntu / input / file1而不是SequenceFile”

如果我运行 bin / hadoop jar hadoop-examples-1.0.4.jar wordcount输入输出这是可行的。

所以我无法弄清楚如何处理它

3 个答案:

答案 0 :(得分:1)

这里的错误信息完全正确; sort示例期待sequence file - 二进制密钥和值的平面文件作为输入,这种类型通常作为MapReduce作业的输出生成。

然而,wordcount示例并不期望特定的序列文件作为输入,只是一个文本文件,其中键是作为文件的偏移量(行号),值为行内容。

看作输入文件本身不是序列文件,sort无法使用它们运行。

答案 1 :(得分:0)

@Jork,如果您观察hadoop-examples-1.0.4.jar中给出的示例,您可以通过命令行参数更改输入和输出格式,或者您可以在程序中将SequenceFileInputFormat更改为Text类型。

答案 2 :(得分:0)

我有同样的问题。在这里,https://wiki.apache.org/hadoop/Sort,它说"输入和输出必须是序列文件。" 您应该将输入文件转换为hadoop序列文件,我希望有一种更简单的方法。我觉得这个教程很有帮助,祝你好运! https://examples.javacodegeeks.com/enterprise-java/apache-hadoop/hadoop-sequence-file-example/