MapReduce中各个阶段的分析:

在MapReduce的各个阶段:

在文件被读入的时候调用的是Inputformat方法读入的。inputformat——>recordreader——>read(一行) 。在这里读入一行,返回的是(k,v)的形式,key是行号的偏移量,value的值是这一行的内容。

在上述的过程中,之后是调用map方法,将以上内容转换成正真的(key,value)的形式。key为值,value为1,然后调用context.write方法将该数据写出来。

从map端写出来之后具体写到outputcollector收集器中。

经过outputcollector收集器之后会写入到环形缓缓区中。在环形缓冲区中会做几件事情,①排序,调用的是快速排序法。②分区,调用的是hashpartitioner分区。达到80%之后会溢写磁盘。分区中hashpartitioner分区的时候是按照key进行hash取值的。相同的hash值会在一个分区中,取几个分区可以人为设定。排序的时候的两个依据是partition和key两个作为依据的。同一个partition中是按照key进行排序的。

环形缓冲区中的数据会spill溢写到磁盘中。

在溢写到磁盘之后会merge,归并排序,将多个小文件merge成大文件的。所以合并之后的大文件还是分区,并且分区内部是有序的。

在这里map阶段就算结束了,后边就是reduce阶段了,reduce阶段会去map阶段merge之后的文件中拿数据,按照相同的分区去取数据。reduce中是有分区号的,将数据拿过来之后会存储在本地磁盘中。

取完数据之后会按照相同的分区,再将取过来的数据进行merge归并排序,大文件的内容按照key有序进行排序。

之后会调用groupingcomparator进行分组,之后的reduce中会按照这个分组,每次取出一组数据,调用reduce中自定义的方法进行处理。

最后调用outputformat会将内容写入到文件中。

在这里map端输入的(key,value)的类型我们人为可以指定,一般会设置为(LongWritable,Text),为什么会是longwritable呢,因为map端正真进来的时候是切分之后的文件。key的值是读取的行的偏移量。

MapReduce中各个阶段的分析(转自道法—自然老师)相关推荐

  1. Hadoop中shuffle阶段流程分析

    宏观上,Hadoop每个作业要经历两个阶段:Map phase和reduce phase.对于Map phase,又主要包含四个子阶段:从磁盘上读数据->执行map函数->combine结 ...

  2. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引

    1. Hbase高级应用 1.1建表高级属性 下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性 1. BLOOMFILTER 默认是 ...

  3. MapReduce中源码分析(map端的过程)

    MapReduce阶段,map中key面向文章的偏移量=上一行面向文章的偏移量+本行相对于上一行的偏移量+本单词相对于本行的偏移量. 这个key为本单词相对于文章的偏移量 这个是MapReduce中m ...

  4. mapreduce工作流程_详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:[初 ...

  5. MapReduce 示例:减少 Hadoop MapReduce 中的侧连接

    摘要:在排序和reducer 阶段,reduce 侧连接过程会产生巨大的网络I/O 流量,在这个阶段,相同键的值被聚集在一起. 本文分享自华为云社区<MapReduce 示例:减少 Hadoop ...

  6. MapReduce中加强内容

    课程大纲(MAPREDUCE详解) MapReduce快速入门 如何理解map.reduce计算模型 Mapreudce程序运行演示 Mapreduce编程规范及示例编写 Mapreduce程序运行模 ...

  7. 详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:初识 ...

  8. MapReduce中Combiner的作用

    问题提出: 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value>键值对,再网络节点间对其进行整理(shuffle),然后使用Reducer处理数据并进行最终输出 ...

  9. 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍

    本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

最新文章

  1. Python爬虫与一汽项目【三】爬取中国五矿集团采购平台
  2. yield %%% generator
  3. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
  4. 【Windows工具】QuickLook-3.6.11 安装并设置开机自启动(含较难下载的 QuickLook-3.6.11 安装包百度云盘资源)
  5. jqgrid 编辑列拿不到值_德云社十大杰出学霸,岳云鹏赫然在列,小岳岳你这是否有点牵强...
  6. oracle 11gdata guard,Oracle 11g Data Guard配置
  7. falcon适配ldap密码同步
  8. mysql字符集修改保存_mysql更改已有数据表的字符集,保留原有数据内容
  9. Appium API文档中文版
  10. 高性能迷你React框架anujs1.0.6发布
  11. 提高局域网速度的21招
  12. Atitit it理论不可能三角“:“安全-方便-廉价 目录 1. 不可能三角 1 2. 三元悖论 1 2.1. 培恩洛兹三角形 2 2.2. 彭罗斯三角(Penrose triangle) 2 2.
  13. 21天学通java6 pdf_21天学通Java(第6版) PDF_IT教程网
  14. 和Keyle一起学ShaderForge - Overview
  15. CSS盒子模型box-sizing属性详解
  16. 如何把桌面计算机和回收站隐藏,电脑回收站怎么隐藏图标,隐藏我的电脑和回收站...
  17. python打印星号图案_Python使用for循环打印星号三角形实例
  18. TSCH协议及WIA-PA系统芯片
  19. idea如何全局搜索关键字_intellij idea 怎么全局搜索
  20. 怎么让抖音快速涨粉之抖音数据分析

热门文章

  1. Bayesian Learning via Stochastic Gradient Langevin Dynamics
  2. VR家装丨足不出户就能“浸”距离体验入住效果
  3. 项目日志20190704
  4. 处理 yarn 项目 has unmet peer dependency
  5. swagger(三):统一返回结果不显示字段说明
  6. SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
  7. 游戏建模过程中如何布线?建模布线原理和技巧
  8. ubuntu 保存视频流的关键
  9. 国家级专精特新小巨人企业是什么?
  10. 科学革命——承认自己无知的革命