大数据培训教程Combiner合并
Combiner合并
(1)Combiner是MR程序中Mapper和Reducer之外的一种组件。
(2)Combiner组件的父类就是Redulcer。
(3 )Combiner和Reducer的区别在于运行的位置
Combimner是在每一个MapTask所在的节点运行;
Reducer是接收全局所有Mapper的输出结果;
(4)Combiner的意义就是对每一个MapTask的输出进行局部汇总,以咸小网络传输量。
(5)Combiner能够应用的前提是不能影响最终的业务逻辑,而且,Combiner的输出kv
应该跟Reducei的输入kv类型要对应起来。
Mapper
Reducer
357->(3+5+7)/3=5
(3+5+7+2+6)/5=23/5不等于(5+4)/2=9/2
26->(2+6)/2=4
天不看孝技
(6)自定义Combiner实现步骤
(a)自定义一个Combiner继承Reducer,重写Reduce方法
public class WordcountCombiner extends Reducer<Text, IntWritable, Text, IntWritable>{ IntWritable v = new IntWritable(); @Override protected void reduce(Text key, Iterable<IntWritable> values, Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException { int sum = 0; // 1 汇总操作 for (IntWritable value : values) { sum += value.get(); } v.set(sum); // 2 写出 context.write(key, v); } } |
(b)在Job驱动类中设置:
job.setCombinerClass(WordcountCombiner.class); |
大数据培训教程Combiner合并相关推荐
- Java大数据培训学校全套教程-AJAX(27)-马克-专题视频课程
Java大数据培训学校全套教程-AJAX(27)-2人已学习 课程介绍 Java大数据培训学校视频教程:"java大数据培训学校全套教材"系列课程由750集视频构成 ...
- 2018大数据培训学习路线图(详细完整版)
2018大数据培训学习路线全课程目录+学习线路详解(详细完整版) 第一阶段:大数据基础Java语言基础阶段 1.1:Java开发介绍 1.1.1 Java的发展历史 1.1.2 Java的应用领域 1 ...
- 大数据培训:Hadoop HDFS 实现原理
一.HDFS体系结构 1.1 HDFS 简介 Hadoop分布式文件系统 (HDFS) 是运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File S ...
- 大数据培训ClickHouse表引擎
表引擎 表引擎(即表的类型)决定了: 1)数据的存储方式和位置,写到哪里以及从哪里读取数据 2)支持哪些查询以及如何支持. 3)并发数据访问. 4)索引的使用(如果存在). 5)是否可以执行多线程请求 ...
- 大数据课程培训大纲详解,大数据培训学习内容
大数据助力成就非凡.大数据正在改变着商业游戏规则,为企业解决传统业务问题带来变革的机遇.毫无疑问,当未来企业尝试分析现有海量信息以推动业务价值增值时,必定会采用大数据技术.那么大数据培训哪家好呢?今天 ...
- 大数据培训:Spark性能调优与参数配置
Spark性能调优-基础篇 众所周知,正确的参数配置对提升Spark的使用效率具有极大助力,帮助相关数据开发.分析人员更高效地使用Spark进行离线批处理和SQL报表分析等作业. 推荐参数配置模板如下 ...
- 大数据培训:Spark 性能调优详解
调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的 ...
- 深圳大数据培训:HDFS基本概念
深圳大数据培训:HDFS基本概念 1.1 HDFS的介绍 源自于Google的GFS论文 发表于2003年10月 HDFS是GFS克隆版 ,HDFS的全称是Hadoop Distributed Fil ...
- 深圳大数据培训:Transformation算子演示
深圳大数据培训:Transformation算子演示 val conf = new SparkConf().setAppName("Test").setMaster("l ...
最新文章
- JDBC 学习(一)
- Bitcoin Unlimited发布BCH新版本,石墨烯技术迎来进展
- select选择框实现跳转
- 为什么按照 Angular 官网教程执行简单的测试代码,会遇到expect is not defined的错误消息
- 北邮王立新教授提到的“5年后运营商排名论”
- Windows半透明窗口开发技巧
- Neutorn LBaaS 原理
- Java中对象和引用的理解
- [buaa-SE-2017]个人作业-Week1
- python数据分析师网易城市数据团_城市数据分析师-网易云课堂 - 网易云课堂
- python保存快捷键是什么_python常用快捷键
- 密码学写作论文排版操作手册,latex模板cryptocode
- 推荐一款插件layim.js 阿里大牛贤心制作的一款webim聊天插件
- 从阿里巴巴icon引入图标到微信小程序(可以改变大小,颜色)
- Macos中的Mercurial GUI工具Murky试用
- Memory cgroup out of memory
- uniapp 热更新和整包更新
- 尚硅谷大数据技术之Kettle
- Kotlin 标准库随处可见的 contract 到底是什么?
- Golang调度器GPM原理与调度全分析
热门文章
- 联咏平台wifi吞吐量测试方法
- 内网映射代理方案(内网穿透)
- 网易云信亮相 GIAC 全球互联网架构大会,解密新一代音视频架构在元宇宙场景的实践...
- 微信公众号开发快速获取openID(小妙招)
- springboot康复中心病员健康饮食管理系统
- 纯js实现京东购物鼠标放大案例
- 【自己制作数据集】制作标注并生成mask
- matlab随机矩阵求最大值,产生一个5*7的随机矩阵,编程求出其最小值和最大值及其所处的位置....
- 比特元BTY简介:老牌加密数字货币,3.0主网成功,新篇章开启!
- 巴比特 | 元宇宙每日必读:央视网旗下平台2款藏品卖出51万元,支持30天后转赠,投资者称期待看到赋能...