You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EMR运行Hadoop MapReduce程序Mapper阶段无输出问题求助

问题排查与修复方案
  • 主方法启动类错误:你的main函数中调用ToolRunner.run时传入的是new RevenueCount()实例,而非当前编写的Top5Count类实例,程序运行时加载的根本不是你写的Top5计算逻辑,这是Mapper无输出的核心原因,直接将对应位置替换为new Top5Count()即可。
  • 输入分隔符适配问题:Mapper中使用制表符\t拆分上游作业输出的行数据,如果上游作业输出的键值对分隔符不是制表符,会触发NoSuchElementException异常导致Mapper任务运行失败无输出,建议先确认上游输出分隔符,或者增加异常捕获逻辑跳过格式错误的行。
  • 可选优化:你当前使用的Java默认PriorityQueue是小顶堆,现有compareTo逻辑可以正确保留每个Mapper的Top5记录,但最终Reducer输出时是按营收从小到大输出,如果需要输出顺序为从高到低,可以调整Tuple的compareTo方法返回值,或者输出前先将队列元素反转。
修正后的主方法代码
public static void main(String[] args) throws Exception {
    int res = ToolRunner.run(new Configuration(), new Top5Count(), args);
    System.exit(res);
}

内容的提问来源于stack exchange,提问作者Charles Kou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:09:02