亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Hadoop入門教程之分布式計算框架MapReduce

说明

这个技术在如今,有一定的使用场景,但是使用场景已经不多,仅当做了解就可以了。因为现在的Spark比MapReduce强太多了,所以学习的重心应当放在Spark上面。

什么是MapReduce?

源自于Google的MapReduce论文

实际上HBase也是源自于Google的论文

发表于2004年12月,Hadoop MapReduce是Google MapReduce的克隆版

MapReduce的特点

1.易于编程

因为它是一个分布式的框架,如果手工开发一个分布式的应用框架,那么需要考虑的东西就是非常多的。比如输入数据是怎么拆分的,数据的本地性,以及容错性。但是MapReduce就不一样了,我们只需要实现它API中的Map方法Reduce方法就可以了。

2.良好的扩展性

只要增加机器,性能就会提升。

3.高容错性

在计算的时候,会就近去副本来处理,当前在计算的任务,如果挂掉了,会自动转移到其他的节点去运行。

4.海量数据的离线处理

数据量多大都没关系,只要节点能跟得上就行了。执行速度对时效性要求不高,因为MapReduce的设计模型就注定了,不可能用它来进行实时处理,只能做离线处理。

离线处理:

如,今天获取的数据,需要明天才能看到结果,并不能立刻把结果计算出来。相当于去淘宝购物,买了东西以后,第二天才能分析出你喜欢的商品类型来给你智能推荐。

实时计算:

反之,实时计算就是,立刻计算出结果,当你点击淘宝商品的时候,就立刻根据大数据计算出你可能喜欢的其他商品来给你实时推荐。

MapReduce不擅长的场景:

1.实时计算

比如在我们的web系统中,在搜索框中输入内容以后,推荐的结果都是秒级别或者是毫秒级别的。这种对于实时性的要求是非常高的,但是MapReduce会编译成MapTask和ReduceTask来进行计算。这两个Task都是进程级别的,每次都要启动一个GBS进程,对于进程开启和最终执行完的销毁,耗费的时间是非常大的,所以MapReduce是不适合做实时计算的,只能用来做离线处理。

2.流式计算

MapReduce的输入数据是静态的,在计算之前数据是要进行拆分的,不能是动态的,只要开始计算,再新增数据也是没用的。

解决方案

如果想要做实时流式处理的话,需要借助Storm和Spark Streaming这些框架来完成统计分析操作。

3.DAG计算

什么是DAG?

多个应用程序存在依赖关系,A作业执行完以后执行B作业,B作业执行完以后执行C作业。对于这种,不太适合使用MapReduce来计算。

总结

MapReduce就是来做离线批处理的,时效性和延迟性是非常高的,不能立刻得到结果。

點擊查看更多內容
7人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
1.9萬
獲贊與收藏
4701

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消