MapperReduce初探系列(1)——面向编程之分布式分析框架(模型)

正如标题说的一样,MapperReduce是一种很厉害的面向编程的分布式分析框架,MapperReduce使得hadoop更加有意义,虽然MapperReduce没有Spark计算速度快,但是MapperReduce也又很多优势,那什么是MapperReduce,又怎么解决海量数据的计算?


一. MapperReduce概述

(1)MapperReduce是一种分布式计算模型,由Google提供,主要运用于搜索领域,解决海量数据的计算问题。
(2)MR的组成:MapperReduce由Mapper和Reduce两部分组成,用户只需要实现Mapper类然后重写mapper()和继承Reducer类重写reduce(),即可实现分布式计算,非常简单!
(3)这两个函数的形参是key,value对,表示函数的输入和输出!

二. MapperReduce原理

在初探MapperReduce之前我们先来看看下面这张图,下图我用红色框出的A,B,C,D,E五个部分!

(1). MapperReduce是一个计算模型,在mapper阶段,用户只需要实现mapper()函数,其中有两个形参,代表输入和输出,那么mapper的数据来源就是hadoop的HDFS本地提供的,A部分代表HDFS文件系统中的某一个文件,这个文件在hdfs中分为三个block分布在放在文件系统中,3个block组合起来就是一个完整的文件,mapper通过切分一部分一部分地读取该文件。
(2) B部分代表的是Mapper的主要应用程序,做mapper运算。
(3)C部分是一个mapper传输数据到reduce的中间过程想,这个过程是用来提高MapperReduce计算速度的优化。
(4)D部分代表是的Reduce应用程序做Reduce相关的计算。
(5)E部分表示的是reduce计算要输出的目的地,这个输出是保存到文件中的,这些文件最终落地在HDFS文件系统中。

三. 任务处理

——MapperReuce把任务分层两个阶乘的任务,就是mapper任务跟reduce任务。
(1)mapper任务:
a. 读取输入文件的内容,解析成Key跟Value对。对输入文件的每一行解析成Key、Value对。每一个键值对调用一个mapper函数。
b. 写自己的逻辑,对输入进来的key、value处理,转换成新的key跟value。
(2)reduce处理任务:
a.在reduce之前有一个shuffle的过程对mapper的输入做合并、排序等操作。
b.写reduce逻辑,对mapper输入进来的key、value处理,转换成新的key、value输出。
c.把reduce的输出到文件中。

四. mapper跟reduce键值对格式


仔细分析mapper跟reduce他们对应的接口函数,就会发现其实他们的 输入键值对的格式是不一样的,reduce()的value值是一个数组来的,这个需要注意的地方的。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值