example4它演示了如何指定Reducer号码,本节演示如何使用HashPartitioner将Mapper根据该输出key分组后Reducer为了应对。

合理的分组策略会尽一切Reducer不能获得的计算负载之间的间隙,因此整体reduce性能较为均衡。

Reducer的数量由HashPartitioner函数getPartition返回值来确定。

public int getPartition(K2 key, V2 value, int numReduceTasks) {
return (key.hashCode() & Integer.MAX_VALUE) & numReduceTasks;
}

上面的代码表示依据key的hash code 除以2的31次方后取余数,用该余数再次除以reducer的数量,再取余数。得到的结果才是这个key相应的partition的编号。

原因是 Integer.MAX_VALUE是2的31次方-1, 一个数假设和一个2的N次方-1的数 按位与 就 等价于 这个数对2的N次方取余数。

參考我的文档:

http://blog.csdn.net/csfreebird/article/details/7355282

全部计算出来属于同一个partition的key,以及它的value都会被发送到相应的reducer去做处理。

所以结论例如以下:

partitioner不会改变reducer的数量。而会决定哪些<key,value>进入哪个组,从而改变reducer处理的数据的量

我的example5就是採用了hash partitioner. 在example4的基础上,只改动了LogJob.java的一行代码:

        job.setPartitionerClass(HashPartitioner.class); 

事实上假如你没有设置。默认Hadoop用途是HashPartitioner。

版权声明:本文博主原创文章,博客,未经同意不得转载。

MapReduce 规划 系列十 采用HashPartitioner调整Reducer计算负荷相关推荐

  1. 推动长三角信创产业发展 华云数据承办的“十四五”规划系列座谈会信创专场顺利召开

    2021年11月19日,在世界制造业大会期间,为推动长三角地区信创产业协同发展,促进地区信创产业生态建设,由上海长三角商业创新研究院.复旦大学管理学院联合主办,淮南高新技术产业开发区管委会.安徽省信创 ...

  2. 数据与广告系列十五:商业兴趣标签建模XGboost调优实战

    作者·黄崇远 『数据虫巢』 全文共8210字 题图ssyer.com " 聊聊商业兴趣标签建模,顺带学习下kaggle竞赛神器,快哉." 01 前言 我们来回想下,早在第是一篇&l ...

  3. MapReduce功能实现十---倒排索引(Inverted Index)

    MapReduce功能实现系列:       MapReduce功能实现一-Hbase和Hdfs之间数据相互转换       MapReduce功能实现二-排序       MapReduce功能实现 ...

  4. [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(中)

    上一篇文章–[GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)中,我们先介绍了对于图像修复的背景,需要利用什么信息来对缺失的区域进行修复,以及将图像当做概率分布采样的样本来看 ...

  5. 华为数字化转型规划“三阶十二步法”

    作者:华为公司企业架构与变革管理部 来源:华夏基石e洞察(ID:chnstonewx) 数字化转型是企业的必答题,企业必须自己主导自身的数字化转型,支撑主营业务成功.那么,怎样才能更好地帮助主营业务成 ...

  6. 全球及中国高速公路行业未来建设规划与十四五盈利前景分析报告2022版

    全球及中国高速公路行业未来建设规划与十四五盈利前景分析报告2022版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 ...

  7. S5PV210开发系列十_Lwip的移植

    S5PV210开发系列十 Lwip的移植 象棋小子    1048272975 Internet实现了全球范围内计算机网络的互连,不同主机之间必须遵循相同的网络协议才能彼此通信.TCP/IP协议作为一 ...

  8. Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)

    Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...

  9. Alamofire源码解读系列(十二)之请求(Request)

    本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...

  10. Oracle Golden Gate 系列十六 -- 配置 GG 安全 说明 与 示例

    由于GoldenGate所需的用户权限较大,而每个GoldenGate进程配置文件中都需要设置该用户和密码用于数据库登陆,出于安全性的考虑,建议将密码进行加密. 官方文档上介绍的加密有如下三种方法: ...

最新文章

  1. php中怎么过滤器_PHP 过滤器(Filter)
  2. iOS动画详解(学习动画看这一篇就够了)
  3. graphpad柱状图怎么加图例_如何用Graphpad prism添加多个图例
  4. matlab将求解sin隐式解,Matlab隐式符号方程求解和赋值
  5. lisp改图元字体式样_一个更改尺寸类型的LISP程序
  6. haddler处理队列 netty_如何实现延迟队列
  7. 中国科学院计算机网络信息中心科学数据中心,中科院计算机网络信息中心发布系列可信共享科学数据公共服务...
  8. 阿里 RocketMQ 如何让双十一峰值之下 0 故障?
  9. 日常问题——flume连接hive时报错Caused by: java.lang.NoSuchMethodError
  10. 【Python】编写一个类,求圆的周长和面积
  11. Hexo框架+Github Page搭建博客(附下载主题、导出CSDN博客至Hexo博客)
  12. PHP弱类型安全问题总结
  13. 〖Linux〗使用ssh登录远程主机,并在本地打开远程图形界面
  14. Servlet期末复习笔记3
  15. [python 译] 基于面向对象的分析和设计
  16. OTSU 获取最佳阈值,及opencv二值化
  17. 音乐代码 (DNF天空之城、欢乐颂)。
  18. 阿里面试官鬼得很,问我为什么他们阿里要禁用Executors创建线程池?
  19. Python入门基础总结笔记——正则表达式
  20. 计算机常用英语大全 (中英文对照)

热门文章

  1. iOS-更新CocoaPods出现错误 提示重复文件
  2. jquery实现百度类似搜索提示功能(AJAX应用)
  3. 音频播放IOS:AVAudioPlayer音频播放器
  4. [Python]关键字is和操作符==
  5. 从头开始学做 canvas 动画引擎
  6. 08.存储Cinder→5.场景学习→01.LVM Volume
  7. packetfence 7.2网络准入部署(二)
  8. javascript中的this指向问题
  9. Sorting a Three-Valued Sequence
  10. 匿名函数自调的三种方法