MapReduce學習(4)
Map階段詳解
在Job提交前,會先將待處理的文件進行分片 (Split)。MR框架默認將一個塊 (Block) 作為一個分片。客戶端應用可以重定義塊與分片的映射關系。
Map階段先把數據放入一個環形內存緩沖區,當緩沖區數據達到80%左右時發生溢寫 (Spill),需將緩沖區中的數據寫入到本地磁盤。寫入本地磁盤之前通常需要做如下處理:
分區 (Partition):默認采用Hash算法進行分區,MR框架根據Reduce Task個數來確定分區個數。具備相同Key值的記錄最終被送到相同的Reduce Task來處理。
排序 (Sort):將Map輸出的記錄排序,例如將(‘Hi’,’1’),(‘Hello’,’1’)重新排序為(‘Hello’,’1’), (’Hi’,’1’)。
組合 (Combine):這個動作MR框架默認是可選的。例如將 (’Hi’,’1’), (’Hi’,’1’),(‘Hello’,’1’), (Hello’,’1’)進行合并操作為 (’Hi’,’2’), (‘Hello’,’2’)。
合并 (Spill):Map Task在處理后會產生很多的溢出文件(spill file),這時需將多個溢出文件進行合并處理,生成一個經過分區和排序的Spill File (MOF:MapOutFile)。為減少寫入磁盤的數據量,MR支持對MOF進行壓縮后再寫入。
MapReduce
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。