11.MapReduce第1部分
生活随笔
收集整理的這篇文章主要介紹了
11.MapReduce第1部分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
兩個核心函數Map、Reduce
MapReduce的體系結構
TaskTracker是以什么方式衡量資源使用情況?在MapReduce設計中,TaskTracker是使用一種槽slot的概念: 先劃分:TaskTracker使用slot把機器上的CPU、內存等資源進行等量劃分,分成大小相同的slot。 再調度:將各個TaskTracker上空閑的slot分配給task(maptask、reducetask)使用 啟動:TaskTracker啟動maptask、reducetaskMapReduce工作流程
1、工作流程概述:
數據分塊存儲到不同的HDFS機器節點上--->把大數據集分片操作split 每一個小分片單獨啟動一個map()任務,去負責處理該分片map()任務的輸入<key,value>,輸出list<key,value>,這些輸出的list<key,value>要 “經過shuffle處理”,shuffle處理完之后才發送到不同的reduce()機器上進行后續的并行處理, reduce()處理后,輸出到HDFS 見下圖所示:2、MapReduce各個執行階段
先通過InputFormat進行加載文件中的數據(InputFormat工作:輸入進行格式驗證;邏輯切分split) RR:記錄閱讀器RecordReaderMapReduce的核心:shuffle過程
【說明】:一個shuffle過程包括map中的shuffle和reduce中的shufle【過程簡介】:數據是保存在分布式文件系統HDFS中的,是從分布式文件系統HDFS中輸入數據;輸入完之后進行分片處理,每個分片交給map任務,map任務包含用戶對數據的處理邏輯,map處理結束后生成很多的鍵值對,這些鍵值對不是直接發送給reduce,也不是直接寫入磁盤, 而是先寫入緩存中去,當緩存被寫滿的時候,發生溢寫,在混村的數據寫入磁盤的過程中會 發生(分區、排序、合并),把(分區、排序、合并)后的數據寫入到磁盤文件中。因此,寫入到磁盤中的數據是(分區、排序、合并之后的)的大文件,生成的該大文件之后會 通知reduce任務取走。---------------------------------------------------reduce任務會取走屬于自己的對應的分區中的數據,執行歸并,之后再輸入給reduce()函數,reduce()函數中有用戶寫好的處理數據的邏輯,處理完成后進行輸出,輸出給 分布式文件系統HDFS 圖示見下:總結
以上是生活随笔為你收集整理的11.MapReduce第1部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10.NoSQL数据库第2部分
- 下一篇: 12.MapReduce第2部分(Wor