分享

新手指导:MapReduce中的分区方法Partitioner

nettman 发表于 2014-5-1 12:31:22 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 30 67056
yongjian3311 发表于 2015-7-14 11:30:32
能不能这样理解:
回复

使用道具 举报

yongjian3311 发表于 2015-7-14 11:32:43
能不能这样理解:
如果是按照默认分区来分,就是随机分配的;而按照自定义分区来分,数据分区就可能会不平均或者会造成某些Mapper会过载,而有些Mapper清闲呢?@nettman
回复

使用道具 举报

bigdata_lyn 发表于 2015-7-23 12:51:18
yongjian3311 发表于 2015-7-14 11:32
能不能这样理解:
如果是按照默认分区来分,就是随机分配的;而按照自定义分区来分,数据分区就可能会不平 ...

我也有这个担心....

回复

使用道具 举报

yongjian3311 发表于 2015-7-29 09:56:09
请问,如果按默认分区,是按key字典序排序,
但如果,我想让它不按key排序呢?应该作何处理,我想让其随机分配,乱序
回复

使用道具 举报

schrodingct 发表于 2015-7-30 17:15:52
Rekklesly 发表于 2015-7-10 01:49
如果自定义分区需要等MAPPER任务结束后 计算各个KEY的分布才能形成。。那么这段时间 是不是REDUCE就无法工 ...

所有的作业都是分为多个map并发执行,map执行完之后才会执行reduce的
回复

使用道具 举报

hellom 发表于 2015-8-17 17:28:39
yongjian3311 发表于 2015-7-14 11:32
能不能这样理解:
如果是按照默认分区来分,就是随机分配的;而按照自定义分区来分,数据分区就可能会不平 ...

按默认的是随机分配的,并不是均匀分配的,因为是否均匀分配,取决于实际数据中key的分布。 如果某一个key的数据很大,相同的key肯定是分到同一个reducer,也就没有均匀分配,就会导致传说中的数据倾斜。

按照自定义分区,目的就是为了解决数据倾斜。自定义分区,是在你对你当前数据分布有一定了解的基础上,选择合适的分区算法,以保证每一个reducer上的运算工作量大致相当,这样才能最高效的完成计算
回复

使用道具 举报

bingyuac 发表于 2016-5-17 18:04:54
学习了 受益匪浅
回复

使用道具 举报

程序猿的无奈 发表于 2016-7-4 15:51:59
那在哪设置输出呢?怎么将多个输出分配到相应的地方
回复

使用道具 举报

Gazelle 发表于 2016-7-5 13:09:19
Partition具体发生在map的哪个阶段
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条