读书人

MapReduce只需要一个输出文件时reduce

发布时间: 2012-06-18 13:23:36 作者: rapoo

MapReduce只需要一个输出文件时reduce个数问题。
我需要处理一个文件,文件中存放了一个浮点数矩阵,需要对文件中每一个浮点数进行计算,转换成另一个浮点数。输出结果是一个新的矩阵。

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

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

或者,这样的问题有没有其他方法解决?


[解决办法]
一年多没用这个了。
但是我记得,当时输出文件都是在hdfs文件系统下,每个reduce节点输出的结果都是输出结果的一部分,可以使用hdfs的merge命令将这些文件合并起来。

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

读书人网 >网络协议

热点推荐