MapReduce只需要一个输出文件时reduce个数问题。

作业本 2011-12-21 05:24:23
我需要处理一个文件,文件中存放了一个浮点数矩阵,需要对文件中每一个浮点数进行计算,转换成另一个浮点数。输出结果是一个新的矩阵。

我用map将矩阵文件拆分,每个map任务处理一个矩阵的一部分。而输出的时候由于我只需要一个输出文件,所以这个时候我设置reduce个数为1. 但是,你知道,reduce个数为1的时候效率很低的,每个map任务都要把数据传送给这个reduce,体现不出分布式处理的优势了。怎么办?

而如果把reduce个数设置为多个,那么最终我的输出还是需要一个文件,如何合并reduce输出的多个文件为一个?

或者,这样的问题有没有其他方法解决?
...全文
748 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
leetao881212 2012-05-11
  • 打赏
  • 举报
回复
一年多没用这个了。
但是我记得,当时输出文件都是在hdfs文件系统下,每个reduce节点输出的结果都是输出结果的一部分,可以使用hdfs的merge命令将这些文件合并起来。

如果你reduce就是直接放在一个计算节点上做的话,那肯定就只能比较低效的运行了。

2,245

社区成员

发帖
与我相关
我的任务
社区描述
OpenAPI
社区管理员
  • OpenAPI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧