lexce233 2024-06-11 16:19 采纳率: 0%
浏览 2

hadoop中的对MapReduce的数据进行排序运行问题

博主您好,我在跟着您在20年5月7号写的大数据hadoop学习【14】通过JAVA编程实现对MapReduce的数据进行排序这篇文章中的第三部中遇到了问题,执行hadoop jar ~/lenovo/bigData/myapp/Sort.jar /user/hadoop/file2 /user/hadoop/output3
之后没有output的输出

img

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-06-11 16:19
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的日志信息,我们可以分析以下几个方面来解决您遇到的问题:

    1. 为什么/user/hadoop/output3目录下没有生成任何文件?

    • 从日志中可以看到,MapReduce任务已经执行,但是Map output recordsMap output bytes的数量都相对较小,这可能意味着输入数据量不大或者任务没有正确处理数据。
    • Failed Shuffles=0表示没有失败的洗牌阶段,这通常是MapReduce任务成功完成的一个标志。

    2. 理解MapReduce框架的运行状态:

    • Map input records: 表示Map阶段处理的记录数。
    • Map output records: 表示Map阶段输出的记录数。
    • Map output bytes: 表示Map阶段输出的字节数。
    • Map output materialized bytes: 表示Map阶段输出数据在内存中占用的字节数。
    • Input split bytes: 表示输入数据被分割成的字节数。
    • Spilled Records: 表示在Map阶段溢出到磁盘的记录数,这里为0表示没有溢出。
    • GC time elapsed: 表示垃圾收集器消耗的时间,这里为0表示没有进行垃圾收集。
    • Total committed heap usage: 表示Java虚拟机分配的堆内存总量。

    3. hdfs dfs -cat命令的执行情况:

    • 您尝试使用hdfs dfs -cat /user/hadoop/output3/*/user/hadoop_chx/output/*来查看输出文件,但都提示没有找到文件或目录。这可能是因为:
      • 输出目录确实没有生成文件。
      • 执行hadoop jar命令时可能指定了错误的输出路径。
      • MapReduce任务可能没有正确执行或中途失败。

    4. hdfs dfs -ls命令返回的文件列表:

    • 这个命令显示了当前用户目录下的文件和文件夹。从返回结果来看,没有看到output3或与MapReduce任务相关的输出目录。

    解决方案:

    • 首先,确认您的MapReduce程序是否正确编写,特别是输出路径是否设置正确。
    • 检查MapReduce程序的日志输出,看是否有错误或异常信息。
    • 确认Hadoop集群的状态,确保所有节点都正常运行。
    • 如果可能,尝试使用不同的输入数据重新运行MapReduce任务。

    代码实现和参考资料:

    • 由于您没有提供具体的MapReduce程序代码,我无法给出具体的代码实现建议。通常,您需要检查JobConf中的OutputFormatOutputPath设置是否正确。
    • 参考资料:

    希望这些信息能帮助您解决问题。如果需要更具体的帮助,请提供更多的上下文信息或代码示例。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月11日