hadoop map-reduce中的文件并发操作
但是reduce的数量只能为1,不然每个reduce都会生成相同的目录或者文件,不能达到最终的目的。mapreduce推测执行机制mapreduce 为了提高效率,会在一个任务启动之后,同时启动一些相同的任务,其中有一个attempt成功完成之后,视为整个task完成,其结果 作为最终结果,并且杀掉那些较慢的attempt。因为此种情况的key一般只占极少数,所以并不影响总体的效率。所以从效率来讲,最好是在文件发生异常时将其key作为reduce的输出以进行记录。因为同时mapreduce会重启一个task attempts重新进行文件读写,可保证我们得到最终的数据,最后所需的只是对那些异常的key进行一些简单的文件重命名操作即可。在创建文件的同时建立多个子目录,一个有用的方法是以reduce的taskid来建立子目录。
下载地址
用户评论