分享

关于MapReduce中多个reduce输出的问题

soony_007 发表于 2013-10-16 13:38:47 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 45558
本帖最后由 nettman 于 2013-10-27 15:15 编辑

每个reduce task都会向HDFS写入自己的输出文件吗?
这些输出文件会进行合并吗?
求指教,谢谢
              
               
            

已有(6)人评论

跳转到指定楼层
edwardvsnc 发表于 2013-10-16 13:39:25

            1.会有自己的输出, 不过我不清楚是写到hdfs还是本地dfs上了。
2.会合并
        
回复

使用道具 举报

edwardvsnc 发表于 2013-10-16 13:40:02

            每个reduce输出一个结果文件,有多少reduce就会有多少输出文件,然后会有一些其他文件。不会合并的,导出的时候可以用命令行进行合并
        
回复

使用道具 举报

soony_007 发表于 2013-10-16 13:40:50

            引用 2 楼 zuochanxiaoheshang 的回复:每个reduce输出一个结果文件,有多少reduce就会有多少输出文件,然后会有一些其他文件。不会合并的,导出的时候可以用命令行进行合并
不过,我记得reducer会merge输出的结果 , 你的意思是不是merge时,只是merge hdfs上的数据,
各个machine上的输出文件不会merge ?
        
回复

使用道具 举报

jixianqiuxue 发表于 2013-10-16 13:41:20

            hadoop fs -getmerge将数据导出时可以将结果文件合并成一个
        
回复

使用道具 举报

edwardvsnc 发表于 2013-10-16 13:42:15

            引用 4 楼 zuochanxiaoheshang 的回复:hadoop fs -getmerge将数据导出时可以将结果文件合并成一个也就是会自己以part000x文件形式存放在HDFS,不能让其自动合并,默认不合并?
        
回复

使用道具 举报

edwardvsnc 发表于 2013-10-16 13:42:49

            不仅默认不会合并而且你不可以设置让它输出一个文件,除非你只设定一个reduce,如果你的数据量很小的话可以这样设定。但是通常情况下你可以你可以启动另一个MR来合并,第一次MR产生多个文件,第二个MR设定一个REDUCE只是简单的合并不做任何数据处理,通常也会很快
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条