MapReduce中各个阶段的分析(转自道法—自然老师)
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中各个阶段的分析(转自道法—自然老师)相关推荐
- Hadoop中shuffle阶段流程分析
宏观上,Hadoop每个作业要经历两个阶段:Map phase和reduce phase.对于Map phase,又主要包含四个子阶段:从磁盘上读数据->执行map函数->combine结 ...
- HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引
1. Hbase高级应用 1.1建表高级属性 下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性 1. BLOOMFILTER 默认是 ...
- MapReduce中源码分析(map端的过程)
MapReduce阶段,map中key面向文章的偏移量=上一行面向文章的偏移量+本行相对于上一行的偏移量+本单词相对于本行的偏移量. 这个key为本单词相对于文章的偏移量 这个是MapReduce中m ...
- mapreduce工作流程_详解MapReduce中的五大编程模型
前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:[初 ...
- MapReduce 示例:减少 Hadoop MapReduce 中的侧连接
摘要:在排序和reducer 阶段,reduce 侧连接过程会产生巨大的网络I/O 流量,在这个阶段,相同键的值被聚集在一起. 本文分享自华为云社区<MapReduce 示例:减少 Hadoop ...
- MapReduce中加强内容
课程大纲(MAPREDUCE详解) MapReduce快速入门 如何理解map.reduce计算模型 Mapreudce程序运行演示 Mapreduce编程规范及示例编写 Mapreduce程序运行模 ...
- 详解MapReduce中的五大编程模型
前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:初识 ...
- MapReduce中Combiner的作用
问题提出: 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value>键值对,再网络节点间对其进行整理(shuffle),然后使用Reducer处理数据并进行最终输出 ...
- 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍
本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
最新文章
- Python爬虫与一汽项目【三】爬取中国五矿集团采购平台
- yield %%% generator
- php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
- 【Windows工具】QuickLook-3.6.11 安装并设置开机自启动(含较难下载的 QuickLook-3.6.11 安装包百度云盘资源)
- jqgrid 编辑列拿不到值_德云社十大杰出学霸,岳云鹏赫然在列,小岳岳你这是否有点牵强...
- oracle 11gdata guard,Oracle 11g Data Guard配置
- falcon适配ldap密码同步
- mysql字符集修改保存_mysql更改已有数据表的字符集,保留原有数据内容
- Appium API文档中文版
- 高性能迷你React框架anujs1.0.6发布
- 提高局域网速度的21招
- Atitit it理论不可能三角“:“安全-方便-廉价 目录 1. 不可能三角	1 2. 三元悖论	1 2.1. 培恩洛兹三角形	2 2.2. 彭罗斯三角(Penrose triangle)	2 2.
- 21天学通java6 pdf_21天学通Java(第6版) PDF_IT教程网
- 和Keyle一起学ShaderForge - Overview
- CSS盒子模型box-sizing属性详解
- 如何把桌面计算机和回收站隐藏,电脑回收站怎么隐藏图标,隐藏我的电脑和回收站...
- python打印星号图案_Python使用for循环打印星号三角形实例
- TSCH协议及WIA-PA系统芯片
- idea如何全局搜索关键字_intellij idea 怎么全局搜索
- 怎么让抖音快速涨粉之抖音数据分析
热门文章
- Bayesian Learning via Stochastic Gradient Langevin Dynamics
- VR家装丨足不出户就能“浸”距离体验入住效果
- 项目日志20190704
- 处理 yarn 项目 has unmet peer dependency
- swagger(三):统一返回结果不显示字段说明
- SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
- 游戏建模过程中如何布线?建模布线原理和技巧
- ubuntu 保存视频流的关键
- 国家级专精特新小巨人企业是什么?
- 科学革命——承认自己无知的革命