hadoop笔记1-MR执行过程
来源:互联网 发布:图像去雾算法用matlab 编辑:程序博客网 时间:2024/05/22 08:16
MR执行过程包括Map、Shuffler、Reduce,其中Map、Reduce及Shuffler中的分区、合并、排序是可以允许程序员编程参与的。
1、Map阶段。
split-----map----partition sort and spill to disk------combine。
1)split的目的是应一个原始文件分成多个文件,分别交由不同的map节点处理,文件块大小由block size、max size、min size,在hadoop1版本的计算方式是spiltSize = max(minsize,max(blockSize,goalSize));在hadoop2版本中的计算方式为spiltSize = max(minsize,max(blockSize,maxSize)),其中 maxSize = mapred.max.split.size 默认最大值整数值,minSize = mapred.min.split.size 默认0,goalSize是根据文件总大小totalSize和MapTask个数n计算得到,即goalSize=totalSize/n。
总结:新版本确定文件块大小时不再考虑maptask任务的个数,而有配置中的mapred.max.split.size代替。
2)map
3)partition sort and spill to disk
每个map任务计算的结果首先写到内存中,当超过阈值(默认100M)时将启动一个线程将数据内容溢写到磁盘上,在溢写的过程中需要指定每个map输出的键值对对应的reduce编号,即分区,默认的分区算法是使用map的key对象的hashcode模reduce个数,该方式不能保证负载均衡,重写Partition类的getPartition方法可自定义分区方式,除分区外,该过程还要经历排序过程,默认的排序是按ascii码排序,可实现WritableComparable接口的compare方法。
4)combine。
每个map任务执行过程中有可能会溢写生成多个文件,而map任务结束后需要交结果传到reduce任务节点,为提高效率需在网络传输文件前将多个小文件合并成大文件,combine是map节点本地reduce过程。
2、Reduce阶段
merge----sort----reduce-----output
在正式执行Reduce过程前,需要做一些预处理,首先将不同map节点传输过来的文件合并,然后排序,排序同map阶段。
- hadoop笔记1-MR执行过程
- hadoop笔记1-MR执行过程
- Hadoop执行MR Job的基本过程
- hadoop MR的过程
- hadoop运行MR程序笔记
- Hadoop MR程序学习笔记
- Mapreduce(二):MR的执行过程分析
- Hadoop学习笔记之深入浅出MR
- hadoop笔记2-MR架构体系
- Hadoop权威指南笔记①(HDFS,MR)
- Hadoop执行过程
- Hadoop执行过程
- hadoop mapTask执行过程
- MR过程
- MR过程
- MR过程
- Hue中使用Oozie的workflow执行MR过程
- Hive jdbc执行seelct 语句时报 return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
- C#的string有null的概念,但是Delphi却没有
- sql2005 OPENDATASOURCE 需要Ad Hoc Distributed Quer
- autocomplete—热点——应用
- IE和Google浏览器事件传递参数不同
- 野人学Android基础篇之异步任务第一课--AsyncTask原理简介及例子
- hadoop笔记1-MR执行过程
- 多字节和Unicode编码是不可逆的
- 带领团队发挥最大潜能的10个技巧 [Y]
- 【Linux开发】GCC 4.8及以上支持内存非法访问检查
- C#Unicode编码不可逆,Default也不可逆
- 编程之美----3.5最短摘要的生成
- google.com 还会换IP
- CheckBoxAndRadio应用
- Delphi类里面的方法和类型定义不影响创建实例的大小