日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce的构思和框架结构

發布時間:2024/4/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce的构思和框架结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MapReduce 設計構思和框架結構

MapReduce是一個分布式運算程序的編程框架,核心功能是將用戶編寫的業務邏輯代碼和自帶默認組件整合成一個完整的分布式運算程序,并發運行在Hadoop集群上。

既然是做計算的框架,那么表現形式就是有個輸入(input),MapReduce操作這個輸入(input),通過本身定義好的計算模型,得到一個輸出(output)。

Hadoop MapReduce構思:

分而治之

對相互間不具有計算依賴關系的大數據,實現并行最自然的辦法就是采取分而治之的策略。并行計算的第一個重要問題是如何劃分計算任務或者計算數據以便對劃分的子任務或數據塊同時進行計算。不可分拆的計算任務或相互間有依賴關系的數據無法進行并行計算!

統一構架,隱藏系統層細節

如何提供統一的計算框架,如果沒有統一封裝底層細節,那么程序員則需要考慮諸如數據存儲、劃分、分發、結果收集、錯誤恢復等諸多細節;為此,MapReduce設計并提供了統一的計算框架,為程序員隱藏了絕大多數系統層面的處理細節。

MapReduce最大的亮點在于通過抽象模型和計算框架把需要做什么(whatneed to do)與具體怎么做(how to do)分開了,為程序員提供一個抽象和高層的編程接口和框架。程序員僅需要關心其應用層的具體計算問題,僅需編寫少量的處理應用本身計算問題的程序代碼。如何具體完成這個并行計算任務所相關的諸多系統層細節被隱藏起來,交給計算框架去處理:從分布代碼的執行,到大到數千小到單個節點集群的自動調度使用。

構建抽象模型:Map和Reduce

MapReduce借鑒了函數式語言中的思想,用Map和Reduce兩個函數提供了高層的并行編程抽象模型

Map: 對一組數據元素進行某種重復式的處理;

Reduce: 對Map的中間結果進行某種進一步的結果整理。

Map和Reduce為程序員提供了一個清晰的操作接口抽象描述。MapReduce處理的數據類型是鍵值對。

MapReduce中定義了如下的Map和Reduce兩個抽象的編程接口,由用戶去編程實現:

Map: (k1; v1) → [(k2; v2)]

Reduce: (k2; [v2]) → [(k3; v3)]

MapReduce 框架結構

一個完整的mapreduce程序在分布式運行時有三類實例進程:

1. MRAppMaster 負責整個程序的過程調度及狀態協調
2. MapTask 負責map階段的整個數據處理流程
3. ReduceTask 負責reduce階段的整個數據處理流程

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的MapReduce的构思和框架结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。