我正在尝试运行bin/hadoop jar hadoop-examples-1.0.4.jar sort input output
但收到错误“java.io.IOException: hdfs://master:9000/usr/ubuntu/input/file1 not a SequenceFile”
如果我运行bin/hadoop jar hadoop-examples-1.0.4.jar wordcount input output 就可以了。
所以我不知道如何处理它
我正在尝试运行bin/hadoop jar hadoop-examples-1.0.4.jar sort input output
但收到错误“java.io.IOException: hdfs://master:9000/usr/ubuntu/input/file1 not a SequenceFile”
如果我运行bin/hadoop jar hadoop-examples-1.0.4.jar wordcount input output 就可以了。
所以我不知道如何处理它
这里的错误信息是完全正确的;该sort
示例需要一个序列文件- 二进制键和值作为输入的平面文件,这种文件通常作为 MapReduce 作业的输出生成。
但是,该wordcount
示例并不期望特别是序列文件作为输入,而只是一个文本文件,其键是文件中的偏移量(行号),值是行内容。
看到您拥有的输入文件本身不是序列文件,sort
因此无法使用它们运行。
@Jork,如果您对 hadoop-examples-1.0.4.jar 中给出的示例进行排序,您可以通过命令行参数更改输入和输出格式,或者您可以在程序中从 SequenceFileInputFormat 更改为 Text 类型。Hadoop
我遇到过同样的问题。在这里,https://wiki.apache.org/hadoop/Sort,它说“输入和输出必须是序列文件。” 您应该将输入文件转换为 hadoop 序列文件,我希望有更简单的方法。我发现这个教程很有帮助,祝你好运!https://examples.javacodegeeks.com/enterprise-java/apache-hadoop/hadoop-sequence-file-example/