Fork me on GitHub

MapReduce(一)

微信公众号:码农小胡
如有问题或建议,请公众号留言

一、mapreduce原理

1、mapreduce是一个分布式运算程序的编程框架,是用户开发,基于hadoop的数据分析应用的核心框架
2、maoreduce核心功能是将用户编写的业务逻辑代码和自带默认的组建整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。

二、为什么用mapreduce

1、海量资源在单机上处理因为硬件资源限制,无法胜任
2、而一旦将单机版程序扩展到集群来分布式运行。将极大增加程序的复杂度和开发难度
3、引入mapreduce框架后,可将绝大部份工作集中在业务逻辑的开发上

三、mapreduce框架结构及核心运行机制

分布式运算程序往往需要分成至少两个阶段;
第一阶段的task并发实例,各司其职各自为政,互不干扰,完全并行,(maptask)
第二阶段的task并发实例互不相干,但是他们的数据依赖于上一个阶段的所有task并发实例的输出(reducetask)
mapreduce编程模型只能包含一个map阶段与一个reduce阶段,如果用户的业务逻辑非常复杂,只能来多个mapreduce程序串行运行。
mapreduce框架设计思想
例子:统计文件中每一个单词出现的总次数
1、读取数据
2、将数据传入到服务器中,切割成block,统计block中的数据
3、每个maptask统计各自的数据
4、传入到reducetask数据,统计数据
5、mrapplication master是一个主方法

GitHub地址

下面的是我的公众号二维码图片,欢迎关注我。