1.其实MapReduce的二次排序是我们定义的sort排序会执行两遍,第一遍是在map端执行,针对一个map任务的(当partition之后的将数据写入到内存缓冲区的时候,达到内存缓冲区的80%的时候就会spill到disk,此时disk是作为硬盘缓存的,所以我们的数据在硬盘上可以sort排序,而且在map执行完任务之后数据就不见了),那么当程序执行到reduce之后,reduce端shuffle首先会将各个map端的数据都抓取到reduce端的内存缓冲区中,等达到内存缓冲区的80%的时候就会溢出到硬盘,硬盘作为内存缓冲区,在这里会第二次执行我们写的sort排序,也就是二次排序!这就是有名的二次排序!

2.不要再认为sort+group是二次排序了,group的作用就是一次性将同一组数据交给一个reduce任务处理!

3.这里需要强调的是:map任务不是随随便便地分配给某个TaskTracker的,这里有个概念叫:数据本地化(Data-Local)。意思是:将map任务分配给含有该map处理的数据块的TaskTracker上,同时将程序JAR包复制到该TaskTracker上来运行,这叫“运算移动,数据不移动”。而分配reduce任务时并不考虑数据本地!

上面也就是说,移动计算而不是移动数据实际上是针对shuffle之前的map端而言的,而不是针对reduce端而言的!

MapReduce端的二次排序以及对移动计算而不是移动数据的理解相关推荐

  1. hadoop之MapReduce自定义二次排序流程实例详解

    一.概述 MapReduce框架对处理结果的输出会根据key值进行默认的排序,这个默认排序可以满足一部分需求,但是也是十分有限的.在我们实际的需求当中,往往有要对reduce输出结果进行二次排序的需求 ...

  2. hadoop二次排序

    二次排序就是首先按照第一字段排序,然后再对第一字段相同的行按照第二字段排序,注意不能破坏第一次排序的结果. 这里主要讲如何使用一个Mapreduce就可以实现二次排序.Hadoop有自带的Second ...

  3. 大数据【四】MapReduce(单词计数;二次排序;计数器;join;分布式缓存)

       前言: 根据前面的几篇博客学习,现在可以进行MapReduce学习了.本篇博客首先阐述了MapReduce的概念及使用原理,其次直接从五个实验中实践学习(单词计数,二次排序,计数器,join,分 ...

  4. MapReduce自定义二次排序流程

    每一条记录开始是进入到map函数进行处理,处理完了之后立马就入自定义分区函数中对其进行分区,当所有输入数据经过map函数和分区函数处理完之后,就调用自定义二次排序函数对其进行排序. MapReduce ...

  5. Hadoop Mapreduce分区、分组、二次排序过程详解

    2019独角兽企业重金招聘Python工程师标准>>> 1.MapReduce中数据流动    (1)最简单的过程:  map - reduce    (2)定制了partition ...

  6. Hadoop Mapreduce分区、分组、二次排序过程详解[转]

    徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2)定制了partitioner以将map的结果送往指定reducer的过程: map - par ...

  7. Mapreduce的排序、全排序以及二次排序

    一:背景 Hadoop中虽然有自动排序和分组,由于自带的排序是按照Key进行排序的,有些时候,我们希望同时对Key和Value进行排序.自带的排序功能就无法满足我们了,还好Hadoop提供了一些组件可 ...

  8. 详细讲解MapReduce二次排序过程

    2019独角兽企业重金招聘Python工程师标准>>> 我在15年处理大数据的时候还都是使用MapReduce, 随着时间的推移, 计算工具的发展, 内存越来越便宜, 计算方式也有了 ...

  9. MapReduce二次排序

    2019独角兽企业重金招聘Python工程师标准>>> 默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用 ...

  10. mapreduce的二次排序 SecondarySort

    mapreduce的二次排序 SecondarySort 关于二次排序主要涉及到这么几个东西: 在0.20.0 以前使用的是 setPartitionerClass setOutputkeyCompa ...

最新文章

  1. 清华开源 Jittor:首个国内高校自研深度学习框架,一键转换 PyTorch
  2. My97 DatePicker日历控件在火狐或IE下打不开
  3. 英特尔更新人工智能产品线,新品性能达到竞品6倍
  4. Java 循环队列原理与用法详解
  5. JAVA 设计的七大原则
  6. 开挂了!女生用写字机器人刷作业 因写太快被识破 这能怪孩子吗?
  7. matlab求刚度,matlab直接刚度法计算结构频率
  8. Xamarin For Visual Studio 3.7.165 完整离线破解版
  9. 使用vue加svg实现流程图代码_snap.svg+vue实现圆形导航
  10. Dlubal RFEM(有限元分析软件)官方中文版V5.25.01 | 结构设计软件下载 | 有限元分析软件有哪些
  11. 【SQLite】C++链接SQLite读数据乱码问题(非中文)
  12. 004Spring事务001JdbcTemplate
  13. js使用微信分享功能
  14. centos安装phpstudy(小皮)
  15. babel-polyfill解决vue框架项目IE无法打开问题
  16. 第八篇order订单专题(5)限价止损单、跟踪止损单、跟踪限价止损单讲解
  17. ubuntu20.04中安装Flatpak,切换数据源
  18. 分布式与云计算系统 考试内容总结
  19. 百度地图API底色主题更换
  20. Mysql中的通用表达式WITH AS语句的使用

热门文章

  1. 你只管打开这个视频,剩下的交给「卧槽」
  2. 音频如何转换mp3格式?
  3. 国内最受欢迎的API市场对比和介绍
  4. AVC、HEVC、VVC帧间预测技术
  5. Openxml 笔记
  6. 2022福大数学建模赛题B题-主成分分析和单因素方差分析-附python代码
  7. 新生周赛——YZJ的牛肉干
  8. python大麦网抢票_抢票攻略-大麦网
  9. 屏幕录制工具LICEcap,截屏生成GIF图
  10. windows动态ip和静态ip的bat文件