拼命三娘冲(20191125)_MapReduce 编程模型

1、MapReduce 编程模型

MapReduce是一种处理海量数据的并行编程模型,用于大规模数据集(通常大于1TB)的并行计算。以这种编程模型所编写的程序可以自动地在集群上并行执行,封装了并行计算、容错处理、数据存储、任务调度、任务间通信等细节,用户只需专心于并行程序的编写。MapReduce适用于复杂度不高的海量数据搜索、挖掘和分析。

2、MapReduce输入一个键值对,输出另一个键值对,用户则通过编写Map函数和Reduce函数来指定所要进行的计算。

Map:接受一个键值对(key-value pair),产生一组中间键值对。MapReduce会将Map函数产生的中间键值对传递给一个Reduce函数。

Reduce:接受一个键以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。

在实现的过程中,Reduce函数使用Iterator读取中间结果,为了防止值过多,而无法全部放到内存中。即Reduce函数的输入类型必须与Map函数的输出类型相同。

3、MapReduce 与Spark 侧重点

MapReduce针对输入数据,将计算过程分为两个阶段,一个Map阶段,一个Reduce阶段,可以理解成是面向过程的大数据计算。我们在用MapReduce编程的时候,思考的是,如何将计算逻辑用Map和Reduce两个阶段实现,map和reduce函数的输入和输出是什么。

而Spark则直接针对数据进行编程,将大规模数据集合抽象成一个RDD对象,然后在这个RDD上进行各种计算处理,得到一个新的RDD,继续计算处理,直到得到最后的结果数据。所以Spark可以理解成是面向对象的大数据计算。我们在进行Spark编程的时候,思考的是一个RDD对象需要经过什么样的操作,转换成另一个RDD对象,思考的重心和落脚点都在RDD上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值