分享

【MapReduce】如何随机分配数据到Reducer?

yongjian3311 发表于 2015-7-29 10:28:29 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 12342
       Map之后的数据经过Partition处理后,按照Key来分发数据到相应的Reduce上面去。
       如果我不想让他按照Key分发,我想随机分发到Reduce上,应作何处理?

已有(2)人评论

跳转到指定楼层
langke93 发表于 2015-7-29 15:13:02
楼主产生这个问题,是因为对于分区的本质还没有认识清楚。
分区是根据分区函数来的,
比如:
这个分区函数是
public class HashPartition(K,V)extends Partitioner<K,V>
{
publice int getPartition(...)
        {
          函数实现
        }
}

比如:随机分配,那么就返回一个随机数目
比如

public class HashPartition(K,V)extends Partitioner<K,V>
{
publice int getPartition(...)
        {
          return new Random().nextInt();
        }
}
这样就是实现了reduce的随机

如果想按照奇偶数


public class HashPartition(K,V)extends Partitioner<K,V>
{
publice int getPartition(...)
        {
        //函数实现
        if(K%2=0)
          return K%2;
        }
        .....
}

详细参考
新手指导:MapReduce中的分区方法Partitioner
http://www.aboutyun.com/thread-7558-1-1.html





回复

使用道具 举报

yongjian3311 发表于 2015-7-29 15:37:03
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条