為何說,MapReduce,顛覆了互聯(lián)網(wǎng)分層架構(gòu)的本質(zhì)?
下圖是一個典型的,互聯(lián)網(wǎng)分層架構(gòu):
- 客戶端層:典型調(diào)用方是瀏覽器browser或者手機APP
- 站點應用層:實現(xiàn)核心業(yè)務邏輯,從下游獲取數(shù)據(jù),對上游返回html或者json
- 服務層:業(yè)務服務,數(shù)據(jù)服務,基礎服務,對上游提供友好的RPC接口
- 數(shù)據(jù)緩存層:緩存加速訪問存儲
- 數(shù)據(jù)固化層:數(shù)據(jù)庫固化數(shù)據(jù)存儲

- view層:展現(xiàn)
- control層:邏輯
- model層:數(shù)據(jù)
如上圖所示:數(shù)據(jù)處理和呈現(xiàn),需要CPU計算,而CPU是固定不動的:- db/service/web-server都部署在固定的集群上
- 端上,不管是browser還是APP,也有固定的CPU處理
- 跨進程的:數(shù)據(jù)從數(shù)據(jù)庫和緩存里,轉(zhuǎn)移到service層,到web-server層,到client層
- 同進程的:數(shù)據(jù)從model層,轉(zhuǎn)移到control層,轉(zhuǎn)移到view層
假如MapReduce也使用類似的的分層架構(gòu)模式:
提前部署服務:- map服務層:接收輸入數(shù)據(jù),產(chǎn)出“分”的數(shù)據(jù),集群部署M=1W個實例
- reduce服務層:接受“合”的數(shù)據(jù),產(chǎn)出最終數(shù)據(jù),集群部署R=1W個實例
為了減少數(shù)據(jù)量的傳輸:(1) 輸入數(shù)據(jù),被分割為M塊后,master會盡量將執(zhí)行map函數(shù)的worker實例,啟動在輸入數(shù)據(jù)所在的服務器上;畫外音:不需要網(wǎng)絡傳輸了。(2) map函數(shù)的worker實例輸出的的結(jié)果,會被分區(qū)函數(shù)劃分成R塊,寫到worker實例所在的本地磁盤;畫外音:不需要網(wǎng)絡傳輸了。
(3) reduce函數(shù),由于有M個輸入數(shù)據(jù)源(M個map的輸出都有一部分數(shù)據(jù)可能對應到一個reduce的輸入數(shù)據(jù)),所以,master會盡量將執(zhí)行reduce函數(shù)的worker實例,啟動在離這些輸入數(shù)據(jù)源盡可能“近”的服務器上;畫外音:目的也是最小化網(wǎng)絡傳輸;服務器之間的“近”,可以用內(nèi)網(wǎng)IP地址的相似度衡量。?所以,對于MapReduce系統(tǒng)架構(gòu),“固定數(shù)據(jù),移動CPU”更為合理。?這是為什么呢??互聯(lián)網(wǎng)在線業(yè)務的特點是:
- 總數(shù)據(jù)量大
- 吞吐量比較大,同時發(fā)起的請求多
- 每個請求,處理的數(shù)據(jù)相對比較小
- 用戶對處理時延比較敏感
MapReduce離線業(yè)務的特點是:
- 吞吐量比較小,同時發(fā)起的任務比較少
- 每個任務,處理的數(shù)據(jù)量非常大
- 用戶對處理時延容忍性大
任何脫離業(yè)務的架構(gòu)設計,都是耍流氓。思考問題的本質(zhì),希望大家有收獲。
福利來了?。?!
免費直播,大數(shù)據(jù)MapReduce升級版Spark。
事件:京東商城大數(shù)據(jù)實戰(zhàn)
人物:鳳凰金融大數(shù)據(jù)一把手,王端陽老師
時間:7月29日,20:00(沒錯,今晚8點)
分享提綱是什么?
(1)企業(yè)級大數(shù)據(jù)開發(fā)流程分析;
(2)大數(shù)據(jù)分布式計算的核心思想傾囊相授;
(3)Spark體系架構(gòu)和任務提交流程分析;
(4)手把手帶你使用 Spark 實現(xiàn)企業(yè)日志分析
(5)常見的大數(shù)據(jù)分布式計算引擎對比分析;
有技術資料么(以下所有課程,免費)?
大數(shù)據(jù)開發(fā)&架構(gòu),20項核心攻略:《Linux基礎命令及使用》《Scala視頻》《Hadoop集群搭建》《HDFS?架構(gòu)設計》《手寫簡單實現(xiàn)Hadoop》《實現(xiàn)RPC》《實現(xiàn)HDFS》《實現(xiàn)MR》《Hive底層執(zhí)行引擎剖析》《Hive性能調(diào)優(yōu)實戰(zhàn)》《大數(shù)據(jù)集群資源如何評估》《Kafka消息引擎底層架構(gòu)剖析》《Kafka源碼講解》《Kafka高性能的消息封裝》《Kafka客戶端容錯體系源》《Kafka服務端高性能架構(gòu)設計》《Kafka數(shù)據(jù)管理》《數(shù)據(jù)中臺的建設》《數(shù)據(jù)中臺建設數(shù)據(jù)治理篇》《ZooKeeper企業(yè)實戰(zhàn)&原理剖析》
掃碼獲取直播地址,免費領資料
祝大家在P8之路上前行,閱讀原文,福利等你。
評論
圖片
表情
