【问题标题】:Hadoop sort example fails with 'not a SequenceFile'. How set the SequenceFileHadoop 排序示例因“不是 SequenceFile”而失败。如何设置 SequenceFile
【发布时间】:2016-11-18 02:01:54
【问题描述】:

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

但是得到一个错误“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 就可以了。

所以我不知道如何处理它

【问题讨论】:

    标签: hadoop


    【解决方案1】:

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

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

    由于您拥有的输入文件本身不是序列文件,sort 无法使用它们运行。

    【讨论】:

    • 用你当前的输入文件,恐怕你不能让它工作。但是,您究竟为什么要它对它们进行排序? wordcount 示例将保证至少在每个输出文件中进行排序,因此没有理由为它对输入文件进行排序。请记住,hadoop-examples-1.0.4.jar 中的示例只是示例,您不会在实践中使用它们。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2014-12-24
        • 2014-08-30
        • 2016-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多