hadoop的计算过程mapreduce,分为map阶段和reduce阶段。

map阶段又分为五个阶段:read--map--collect--spill--merge,read阶段主要是读取数据,送到map函数,生成(key,value)。collect主要是生成(partition,key,value),collect在内存中存储的数据达到一定阈值时,将会吧collect阶段的内存中数据spill(溢出)到磁盘中,最后merge阶段是把spill数据进行归并排序,生成一个大文件,因此每个map阶段都只会生成一个大文件。

map每次读取split的数据(一行一行的读取)后先放在buffer缓冲区中,然后进行分区、排序、当缓冲区满了之后,会进行溢写磁盘。磁盘中会生成很多个溢写小文件,而这些小文件内部是有序的,但小文件和小文件之间是无序的,所以需要进行一次归并形成一个全盘有序的文件。

reduce阶段分为三个阶段:copy--sort--reduce,copy阶段主要是从map阶段相应的分区并行去拉取数据,sort阶段对copy过来的数据进行全局排序,将排序结果送进reduce函数处理,处理完成后最后保存到hdfs。

我们所说的shuffle(奇迹发生的地方)包括collect--spill--merge--copy--sort这五个阶段。

另外名词解释:hadoop的二次排序:hadoop数据在排序时是以key进行排序的,所谓二次排序是指对key进行排序前提下对value进行排序。

hadoop的map和reduce相关推荐

  1. hadoop中map和reduce的数量设置问题

    转载http://my.oschina.net/Chanthon/blog/150500 map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务 ...

  2. hadoop和python的关系_Python 的 map 和 reduce 和 Hadoop 的 MapReduce 有什么关系?

    先说结论.Python 的 map 和 reduce 是Python的内置函数,而 Hadoop 的 MapReduce 是一个计算框架. 两者之间没有直接的关系.但是他们的部分计算操作思想是类似的. ...

  3. hadoop学习之:Map、Reduce详解

    Hadoop学习重点主要为HDFS.MapReduce 部分: 接下来重点描述一下MAP与Reduce 的过程. 看了好多资料,如果有错误的地方请大家指出. MAP部分: 下图是官方给予的关于MapR ...

  4. 彻底明白Hadoop map和reduce的个数决定因素

    Hadoop map和reduce的个数设置,困扰了很多学习Hadoop的成员,为什么设置了配置参数就是不生效那?Hadoop Map和Reduce个数,到底跟什么有关系.首先他的参数很多,而且可能随 ...

  5. Python函数式编程——map()、reduce()

    提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理大规模海量数据,并在之后广泛的应用于Google的各项应用中,2006年A ...

  6. c++ map用法_Python专题——五分钟带你了解map、reduce和filter

    点击上方蓝字,和我一起学技术.今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter.不知道大家看到map和reduce的时候有没有什么 ...

  7. java filter函数的用法_5分钟掌握Python | Map、Reduce和Filter如何运用?

    文末有惊喜哦 天给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter. 一.Map Map除了地图之外,另一个英文本意是映射.在C++和Java一些语言当中,将map进 ...

  8. MapReduce框架中map、reduce方法的运行机制

    MapReduce框架中map.reduce方法的运行机制 Hadoop的API中提供了Mapper和Reducer抽象类,分别有个抽象map()方法和reduce()方法,使用时只需实现该抽象类和抽 ...

  9. c++ map用法_5分钟掌握Python | Map、Reduce和Filter如何运用?

    - 点击上方"中国统计网"订阅我吧!- 今天给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter. Map Map除了地图之外,另一个英文本意是映射 ...

  10. hadoop3 任务卡在map 0% reduce 0%的解决方案

    在VMWare上面配置好了hadoop3之后,当然是先试跑一下案例.然而在master上面运行wordcount的时候却出现了卡在map 0% reduce 0%的情况,搜索了这个问题的相关解决方案, ...

最新文章

  1. HTML5 drag drop 拖拽与拖放简介
  2. android 屏幕录像
  3. docker run -it 如何退出_Docker学习笔记(4)容器的基本命令 1 - 你个小秃头
  4. DataGridView中的rows.Count比实际行数多1的原因以及解决办法
  5. iPhone X适配小结
  6. pdo 参数化查询 mysql函数_PDO笔记之参数化查询
  7. Centos如何使用SSH远程连接主机
  8. JavaScript实现图片旋转构成3D圆环代码
  9. 符合推理的解决方法 NSlover
  10. php css类,css class是啥
  11. adb for linux的工具包,adb工具包下载_adb工具包官方下载「最新版」-太平洋下载中心...
  12. grub2 中的boot命令
  13. 交互设计之层次设计配色篇(表达逻辑——前进色与后退色)
  14. chart的简单使用
  15. Rockchip | Rockchip Camera技术
  16. pca , nmds , pcoa 图添加分组的椭圆
  17. 关于我国计算机软件著作权保护的调研报告,我国计算机软件著作权保护问题研究...
  18. Vmware Ubuntu实现文件拖拽
  19. 提升HTML5的性能体验系列之一 避免切页白屏
  20. 疯狂android讲义第4版光盘_卧槽!当当网又又又可以 4 折买书了!!跟我一起薅羊毛了!...

热门文章

  1. 给定平面上任意三个点的坐标,检验它们能否构成三角形。
  2. 【京东商城首页实战4】topbanner制作
  3. 软件测试质量报告模板,软件质量报告模板-产品质量度量
  4. 质量管理8D报告详解,附报告模板
  5. 微博话题墙 html,Js仿微博插入话题功能
  6. Kafka ~ 消息队列之推还是拉
  7. 利用计算机辅助药物设计方法有何优点,计算机辅助药物设计的原理及应用
  8. 团体力学理论(1944)--轉
  9. 用jQuery合并表格中相同文本的相邻单元格
  10. python中双重循环_python中双循环