1.首先maptask的map方法會生成一堆(k,v)型別的資料,資料會標記好它的分割槽,然後會把這些資料傳入到記憶體的環形緩衝區當中(預設100m)。
2.當環形緩衝區的記憶體占用達到80%時,從記憶體緩衝區不斷溢位到本地磁碟檔案,可能會溢位多個檔案(在溢位前對資料進行快速排序,排序按照key進行字典順序的排序)。
3.多個溢位的檔案會合併成為大的檔案(歸併排序演算法),對溢寫的檔案可以進行combiner操作(對於求最大值,合併值有用,對於求中間值,和平均值沒用,算出的結果會出錯誤)
4.在溢位和合併過程中都會呼叫partitioner進行分組,和針對key進行排序。
5.reducetask會根據自己的分割槽號,從各個maptask機器上拉取屬於自己的結果分割槽的資料(這裡屬於自己分割槽的資料可能來自多個原本不同分割槽的maptask產生,reducetask會將這些資料再次進行歸併排序),拉取的資料先放入記憶體中,記憶體不夠了,再儲存到磁碟。
6.拉取到reduce端以後,同一分區內小的檔案會合併成為大的檔案,此時shuffle就結束了
7。然後就是執行reduce端的邏輯了,從檔案中取出乙個乙個鍵值對進行group(),呼叫使用者自定義的reduce()方法。
(shuffle時,緩衝區的大小會影響到mapreduce的執行效率,一般來說,緩衝區越大,效能越高,因為記憶體大,可以減少磁碟的io次數)
Django詳細流程
我們以學生管理系統為例,講解一下django的基本操作。首先要設計一下表的結構,這裡就不多解釋 班級表結構 表名 grades 字段 班級名稱 gname 成立時間 gdate 女生總數 ggirlnum 男生總數 gboynum 是否刪除 isdelete 學生表結構 表名 students 字段...
教師面試詳細流程
教師資格證面試詳細流程 第一次寫面試流程,沒有寫過,就以本人當時考試說一下吧,希望大家不要介意哈,先祝大家都能通過面試,加油!我們都有自己的面試准考證,當距離考試半小時前我們進入考場,就從這裡開始寫吧 1.進場 拿著自己身份證和准考證進入學校,進入安排的教室等待,在這個教室裡,有很多和你一起考試的小...
SSL單向認證詳細流程
ssl 單向認證流程如下 1.拿到申請到的證書後,需要安裝到伺服器中。3.客戶端向伺服器傳送接入請求。4.伺服器將證書傳送給客戶端。5.客戶端開始對證書進行認證,認證過程如下。在證書中獲取證書的頒發機構字段 在系統證書目錄下尋找,頒發機構的根證書,bingo,找到了,證明所收到的證書的頒發機構不是水...