开发者社区> 代码的天敌是懒惰> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MapReduce 默认分区介绍

简介: MapReduce 默认分区介绍
+关注继续查看

 在 Hadoop 的 MapReduce 过程中,每个 MapTask 处理完数据后,如果存在自定义的 Combiner 类,会先进行一次本地的 Reduce 操作,然后把数据发送到 Partitioner,由 Partitioner 来决定每条记录应该送往哪个 Reduce 节点,默认使用的是 **HashPartitioner**,其核心代码如下:

public class HashPartitioner<K, V> extends Partitioner<K, V> {

  /** Use {@link Object#hashCode()} to partition. */
  public int getPartition(K key, V value,
                          int numReduceTasks) {
    return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
  }
}

 **`getPartition()`函数的作用:**


 (1)获取 key 的哈希值


 (2)默认的分发规则为:根据 **key 的 hashcode%reducetask 数**来分发


 (3)这样做的目的是可以把`<key,value>`对**均匀地分发**到各个对应编号的 ReduceTask 节点上,达到 ReduceTask 节点的负载均衡。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spark 创建RDD、DataFrame各种情况的默认分区数
Spark 创建RDD、DataFrame各种情况的默认分区数
0 0
Hadoop中的MapReduce框架原理、Shuffle机制、Partition分区、自定义Partitioner步骤、在Job驱动中,设置自定义Partitioner、Partition 分区案例
Hadoop中的MapReduce框架原理、Shuffle机制、Partition分区、自定义Partitioner步骤、在Job驱动中,设置自定义Partitioner、Partition 分区案例
0 0
【Hive】(五)Hive 中动态分区与静态分区详解
【Hive】(五)Hive 中动态分区与静态分区详解
0 0
Hive动态分区详解
Hive动态分区注意事项是什么?
0 0
Hive动态分区
Hive动态分区 一)hive中支持两种类型的分区: 静态分区SP(static partition) 动态分区DP(dynamic partition) 静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断。
4664 0
hive动态分区
设置如下参数开启动态分区: hive.exec.dynamic.partition=true 默认值:false 描述:是否允许动态分区 hive.exec.dynamic.partition.
642 0
在hadoop作业中自定义分区和归约
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/43735703 当...
538 0
+关注
代码的天敌是懒惰
拒绝摆烂,寻寻渐进持续学习
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载