Hadoop–Task 相关
在MapReduce计算框架中,一个应用程序被划分为Map和Reduce两个计算阶段。他们分别由一个或多个Map Task 和Reduce Task组成。
- Map Task: 处理输入数据集合中的一片数据,并将产生的若干个数据片段写到本地磁盘。
- 按照用户提供的InputFormat将对应的InputSpilt解析成一系列的key/value, 并以此交给用户编写的map()函数处理。
- 按照指定的Partitioner对数据分片,以确定每个key/value将交给哪个Reducer Task处理。
- 将数据交给用户定义的Combiner进行以此本地规约(用户没有定义则直接跳过)
- 将处理结果保存到本地磁盘。
- Reduce Task: 从每个Map Task上远程拷贝相应的数据片段,经过分组聚集和规约后,将结果写到HDFS上作为最终结果。
- 通过HTTP请求从各个已经运行完成的Map Task上拷贝对应的数据分片。
- 待数据拷贝完成,以key为关键字对所有数据进行排序。通过排序,key相同的记录聚集在一起形成若干分组。
- 将每组数据交给用户编写的reduce()函数处理。
- 将结果直接写到HSFS上面作为最终输出结果。
IFile
IFile是一种支持行压缩的存储格式。为了减少MapTask写入磁盘的数据量和跨网络传输的数据量,IFile支持按行压缩数据记录。当前Hadoop提供了ZLib(默认压缩方式)、BZip2等压缩算法。
IFile文件格式:<key-len, value-len, key, value>
排序
排序是MapReduce框架中最重要的从a组之一。Map Task和Reduce Task均会对数据(按照key)进行排序。该操作属于Hadoop的默认行为。任何应用程序均会被排序,而不管逻辑上是否需要。
对于Map Task,它会将处理的结果暂时存放到一个缓冲区,当缓冲区使用率达到一定阈值后,在对缓冲区中的数据进行以此排序。并将这些有序集合以IFile文件的形式写到磁盘上。而当数据处理完毕后,它会对磁盘上所有文件进行一次合并。已将这些文件形成一个大的有序文件。
对于Reduce Task,它从每个Map Task上面远程拷贝相应的数据文件,如果文件大小超过一定阈值,则放到磁盘,否则放到内存。如果磁盘上文件数目达到一定阈值,则进行一次合并以生成一个更大文件;如果内存中文件大小或者数目超过一定阈值,则进行一次合并后写到磁盘上。当所有数据拷贝完毕后,Reduce Task统一对内存和磁盘上的所有数据进行一次合并。
Map Task和Reduce Task的缓冲区数据合并使用Hadoop自己实现的快排算法,而IFile文件合并则使用了基于堆实现的优先队列。
快排
- 枢轴选择:使用序列的首尾和中间元素的中位数作为枢轴
- 子序列划分:两个索引i,j分别从左右两端扫描,i扫描到大于等于枢轴的等值,j扫描到小于等于枢轴的元素停止,然后交换两个元素。重复直到相遇
- 相同元素的优化: 每次划分子序列,将于枢轴相同的元素集中存放到中间位置,让它们不再参与后续的递归处理过程。即序列划分三部分:小于枢轴、等于枢轴、大于枢轴
- 减少递归次数:当子序列中元素数目小于13时,直接使用插入排序算法,不再递归。
优先队列
文件归并由类Merger完成。其采用多轮递归合并的方式。每轮选取最小的前io.sort.factor(默认是10,用户可配置)个文件进行合并。并将产生的文件重新加入带合并列表中。知道剩下的文件数目小于io.sort.factor个,此时,他会返回指向由这些文件组成的小顶堆的迭代器。
Reporter
Reporter用来完成Task周期性的向TaskTracker汇报最新进度和计数器值。TaskReporter类实现了Reporter接口,并以线程形式启动。其汇报的信息中包含两部分:
- 任务执行进度
- Map Task 而言: 使用已读取数据量占数据总量的比例作为任务当前进度值
- Reduce Task: 其可以分解为三个阶段: Shuffle、Sort、Reduce。每个阶段占任务总进度的1/3.考虑在Shuttle阶段,Reduce Task需要从M(M为Map Task数目)个Map Task上读取数据。因此,可被分解为M个阶段,每个阶段占Shuffle进度的1/M。
- 任务计数器值: 是由Hadoop提供的,用于实现跟踪任务运行进度的全局技术功能。任务计数器由两部分组成<name, value>.计数器以组为单位进行管理,一个计数器属于一个计数器组。Hadoop规定一个作业最多包含120个计数器(可通过参数mapreduce.job.counters.limit设定),50个计数器组。
转载于:https://www.cnblogs.com/lovemdx/p/3236182.html
Hadoop–Task 相关相关推荐
- Hadoop/Spark相关面试问题总结
Hadoop/Spark相关面试问题总结 面试回来之后把当中比較重要的问题记了下来写了个总结: (答案在后面) 1.简答说一下hadoop的map-reduce编程模型 2.hadoop的TextIn ...
- hadoop mapreduce相关类 FileInputFormat
hadoop mapreduce相关类 FileInputFormat 官方链接 http://hadoop.apache.org/docs/r2.9.1/api/ 功能 InputFormat会生成 ...
- CCAH-CCA-500-4题:Where are Hadoop task log files stored?
4.Where are Hadoop task log files stored? For each YARN job, the Hadoop framework generates task log ...
- Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据
2019独角兽企业重金招聘Python工程师标准>>> Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据 输入是GBK文件, 输出也 ...
- Android总结篇系列:Activity Intent Flags及Task相关属性
同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http://blog.csdn.net/liuhe688/article/details/6761337 ...
- 【Android】Activity的task相关
转自:http://blog.csdn.net/liuhe688/article/details/6761337 古人學問無遺力,少壯工夫老始成.紙上得來終覺淺,絕知此事要躬行.南宋.陸遊<冬夜 ...
- Activity的task相关
上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下.task是一个具有栈结构的容器,可以放置多个Activity实例.启动一个应用,系统就会为之 ...
- Android Task 相关
在日常开发过程中,只要涉及到activity,那么对task相关的东西总会或多或少的接触到,不过对task相关的一些配置的作用一直理解的还不是很透彻,官方文档在细节上说的也不够清楚,要透彻理解还是得自 ...
- 基础总结篇之三:Activity的task相关
古人學問無遺力,少壯工夫老始成.紙上得來終覺淺,絕知此事要躬行.南宋.陸遊<冬夜讀書示子聿(yù)> 软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为 ...
最新文章
- 如何看待程序媛们的职场焦虑和未来职业规划?
- 怎么看待传菜机器人_太科幻了!这家顺德菜餐厅里全是机器人,炒菜送菜样样行...
- 【C 语言】二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )
- Go的GOPATH与GOROOT
- 从Ecipse中导出程序至apk
- 谷歌浏览器实现直接打印效果
- C# via CLR之IL中间语言初步探索
- Notepad2 巧妙替换回车换行符
- HTML——添加网页背景音乐
- 史话上:量子物理学的前世今生
- webpack-theme-color-replacer 路由跳转之后,样式丢失
- 别墅家庭无线WiFi覆盖解决方案
- java实现Word 文档形式的导出功能
- MVC用filter做权限过滤
- win10系统警告unknown hard error开不了机怎么办
- Rust GUI 编程漫谈:超越 Web 与原生 GUI
- 继承 super的讲解
- sin函数对照表_三角函数表值对照表格
- 沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式)
- VR多人协同演示(2)
热门文章
- mysql分表方法-----MRG_MyISAM引擎分表法
- Python中的matplotlib xticks
- SSIS - 5.优先约束
- bzoj 1016: [JSOI2008]最小生成树计数【dfs+克鲁斯卡尔】
- freemarker入门教程
- Apache,php,mysql整合安装包 for Windows 2000/xp/2003
- 判断一个where条件的对错php,sql – IN子查询的WHERE条件影响主查询 – 这是一个功能还是一个错误?...
- Windows Pe 第三章 PE头文件(中)
- POJ1679判断最小生成树的唯一性
- LA3708墓地雕塑