• mapreduce中的Combiner

(1)combiner是MR程序中Mapper和Reducer之外的一种组件
(2)combiner组件的父类就是Reducer
(3)Combiner和reducer的区别在于运行的位置:
Combiner是在每一个maptask所在的节点运行
Reducer是接收全局所有Mapper的输出结果;

  • mapreduce中的序列化

(1)Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系。。。。),所以很臃肿,不便于在网络中高效传输;
所以,hadoop自己开发了一套序列化机制(Writable),精简,高效
简单代码验证两种序列化机制的差别:

public class TestSeri {public static void main(String[] args) throws Exception {//定义两个ByteArrayOutputStream,用来接收不同序列化机制的序列化结果ByteArrayOutputStream ba = new ByteArrayOutputStream();ByteArrayOutputStream ba2 = new ByteArrayOutputStream();//定义两个DataOutputStream,用于将普通对象进行jdk标准序列化DataOutputStream dout = new DataOutputStream(ba);DataOutputStream dout2 = new DataOutputStream(ba2);ObjectOutputStream obout = new ObjectOutputStream(dout2);//定义两个bean,作为序列化的源对象ItemBeanSer itemBeanSer = new ItemBeanSer(1000L, 89.9f);ItemBean itemBean = new ItemBean(1000L, 89.9f);//用于比较String类型和Text类型的序列化差别Text atext = new Text("a");// atext.write(dout);itemBean.write(dout);byte[] byteArray = ba.toByteArray();//比较序列化结果System.out.println(byteArray.length);for (byte b : byteArray) {System.out.print(b);System.out.print(":");}System.out.println("-----------------------");String astr = "a";// dout2.writeUTF(astr);obout.writeObject(itemBeanSer);byte[] byteArray2 = ba2.toByteArray();System.out.println(byteArray2.length);for (byte b : byteArray2) {System.out.print(b);System.out.print(":");}}
}
  • mapreduce的排序初步

MR程序在处理数据的过程中会对数据排序,排序的依据是mapper输出的key

Hadoop大数据——mapreduce中的Combiner/序列化/排序初步相关推荐

  1. Hadoop大数据——mapreduce的secondary排序机制

    secondary排序机制 ----就是让mapreduce帮我们根据value排序 考虑一个场景,需要取按key分组的最大value条目: 通常,shuffle只是对key进行排序 如果需要对val ...

  2. Hadoop大数据--Mapreduce编程规范及入门示例

    Mapreduce是一个分布式的运算编程框架,核心功能是将用户编写的核心逻辑代码分布式地运行在一个集群的很多服务器上. Mapreduce的存在价值 (1)海量数据在单机上处理因为硬件资源限制,无法胜 ...

  3. Hadoop大数据--Mapreduce程序运行并发度

    reduce task数量的决定机制 1.业务逻辑需要 2.数据量大小 设置方法: job.setNumReduceTasks(5) map task数量的决定机制 由于map task之间没有协作关 ...

  4. Hadoop大数据——mapreduce的排序机制之total排序

    mapreduce的排序机制之total排序 (1)设置一个reduce task ,全局有序,但是并发度太低,单节点负载太大 (2)设置分区段partitioner,设置相应数量的reduce ta ...

  5. hadoop大数据——mapreduce程序提交运行模式及debug方法

    本地运行模式 (1)mapreduce程序是被提交给LocalJobRunner在本地运行 (2)而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上 怎样实现本地运行?:写一个程序,不要带集 ...

  6. Hadoop大数据——mapreduce的join算法

    (1)Reduce side join 示例: 订单数据 商品信息 实现机制: 通过将关联的条件作为map输出的key,将两表满足join条件的数据并携带数据所来源的文件信息,发往同一个reduce ...

  7. Hadoop大数据——mapreduce的Distributed cache

    应用场景:map side join 工作原理: 通过mapreduce框架将一个文件(本地/HDFS)分发到每一个运行时的task(map task /reduce task)节点上(放到task进 ...

  8. Hadoop大数据原理(3) - 分布式计算框架MapReduce

    文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...

  9. Hadoop大数据零基础高端实战培训系列配文本挖掘项目

    <Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉 ...

最新文章

  1. quickbuild php,QuickBooks API(php)集成
  2. vim 使用技巧 转载
  3. Ruby备份mongodb(fsync lock)
  4. 互联网1分钟 |1212
  5. linux sublime nodejs,Windows环境下sublime的Nodejs插件详细安装图解
  6. 【android】系统库:framework+本地库(-java)+java库(与jre的子集兼容)
  7. ZOJ -3203 三分+数学
  8. OpenDDS通讯中rtps_discovery对等发现的基本配置和说明
  9. [Unity脚本运行时更新]C#7新特性
  10. 领域驱动设计最佳实践
  11. xampp mysql关机意外_xampp运行MySQL shutdown unexpectedly解决方法
  12. 抗衰落技术 — Rake接收和发射分集
  13. K均值算法(K-means)聚类
  14. 2022年6月 青少年软件编程(图形化) 等级考试试卷(四级)
  15. Python爬虫——Scrapy框架的基本使用
  16. html5+交友app,国内5款高质量陌生人社交软件,你玩过几个
  17. stmdb和ldmia
  18. Linux —— 基础开发工具的基本使用 —— yum、vim、gcc、make和makefile,gdb的简单应用
  19. html前端小教程—各浏览器兼容视频插入方法
  20. ETA ESX10-TD-101-DC24V-2/4/6A

热门文章

  1. 【Python基础】安利3个Python数据分析EDA神器!
  2. 终于等到你!GitHub 终于支持 multi-line comments!
  3. 推荐系统与GNN的火花
  4. Po校园接入云信,多机位“有毒”直播燃爆LIVE
  5. vue工程全局设置ajax的等待动效
  6. tkinter menu
  7. 使用Xamarin实现跨平台移动应用开发
  8. Silverlight4Beta之CompositeTransform
  9. CentOS6.x下配置sendmail发邮件
  10. Microsoft 邀您参加云对话!