当前位置:   article > 正文

mapreduce概述_mapreduce的中文全称

mapreduce的中文全称

1.2 MapReduce概述
Google发表了两篇论文《Google File System》 《Google MapReduce》
《Google File System》简称GFS,是Google公司用于解决海量数据存储的文件系统。
《Google MapReduce》简称MapReduce,是Google的计算框架,基于GFS。

Map映射
Reduce汇聚、缩减
目标:普通人都能理解的理论基础
比如:如何统计北京一共有多少栋楼房?
源数据:
Haidian 200 Haidian 230 Haidian 200 Haidian 230
Haidian 300 Haidian 330
Haidian 400 Haidian 420
Haidian 500 Haidian 540
Haidian 600 Haidian 120
Map->
Haidian 200
Haidian 230
Haidian 200
Haidian 200,300,400,230,600

Reducer:
Haidian sum

原语:<<相同的key为一组,这一组数据调用一次reduce方法,方法内迭代计算这一组数据>>
Map-Reduce: 线性依赖关系,先执行完map,再执行reduce
MapTask:
映射:保证原语中组的实现
并行度:split
split:大小可调整,默认等于hdfs中block的大小
框架默认,hdfs一个文件多少个block,就会有多少个map
计算级别:split中一条记录(record)调用一次map方法!
ReduceTask:
汇聚:
计算级别:按照组group为单位,一组调用一次reduce方法!
并行度:
理想状态:多少组group对应多少个reduceTask
但是,其实一个reduceTask可以线性处理若干组
术语对比关系:
• block > split
– 1:1(默认)
– N:1
– 1:N
• split > map
– 1:1
• map > reduce
– N:1
– M:N
– 1:1
– 1:N
• group(key)>partition(redues task) reduce(){}
– 1:1
– N:1
– M:N
– 1:N? >违背了原语
• partition > outputfile
1、每个block会有map任务
2、block切分为切片,每个切片对应一个map任务,默认一个block一个切片,一个map
3、map默认按行读取切片数据,组成键值对<当前行字节偏移量, “读到的行字符串”>
4、map函数对该键值对进行计算,输出若干键值对。<key, value, partition>
partition指定该键值对由哪个reducer进行处理
5、map输出的kvp写到环形缓冲区,环形缓冲区默认100MB,阈值80%,当环缓达到80%就向磁盘溢写小文件,该小文件首先按照分区号排序,相同分区号的按key进行排序。
6、默认如果落磁盘的小文件达到了3个,则进行归并,归并的大文件也是按分区号排序,相同分区号按照key进行排序。只是一个归并。
7、如果map任务处理完了,它的输出被下载到reducer所在主机
按照HTTP GET的方式下载到reducer:
reducer发送HTTP GET请求到mapper主机下载数据,该过程是洗牌shuffle
8、每个map任务都要经历运行结束洗牌的过程
9、可以设置combinClass,先在map端对数据进行一个压缩,比如10w个<hello,1>压缩为1个<hello, 10w>通过网络IO洗牌,肯定要快很多。一般情况下,combineClass就是一个reducerClass。

开阔眼界:
尽管hadoop框架是java开发的,MapReduce应用不一定得java开发。hadoop streaming允许用户使用可执行文件的方式提供mapper和reducer,创建和执行作业。hadoop pipes是一个跟SWIG兼容的C++ API,用于开发MapReduce应用(不基于JNI)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/893004
推荐阅读
相关标签
  

闽ICP备14008679号