MapReduce原理與實現

2022-09-23 00:13:07 字數 1153 閱讀 7511

分而治之,一個大任務分成多個小的子任務(map),並行執行後,合併結果(reduce)

問題1:1000副撲克牌少哪一張牌(去掉大小王)

將日誌進行切分(比如按時間)

各自統計各ip的訪問次數

進行歸約,通過ip值進行hash對映(相同ip歸到同一個reduce)

排序結果

基本概念

jobtracker(master管理節點)

tasktacker

客戶端提交job,jobtracker將其置於候選佇列

jobtracker在適當的時候進行排程,選擇一個job,將其拆分多個map任務和reduce任務,分發給tasktracker來做

在實際的部署中,tasktracker和hdfs中的datanode是同一種物理結點(這樣可保證計算跟著資料走,讀取資料的開銷最小,移動計算代替移動資料)

任何job過來都是先交到jobtracker裡,採用一定排程策略分配map任務和reduce任務(可多輪)

輸入資料進行分片,按照一定規則分給tasktracker,分配map任務

任務好了之後,產生中間結果(key-value對)

(key-value對)根據一些對映規則進行交換,再到reduce端進行reduce任務

運算完之後,資料結果寫回到hdfs中

重複執行(job、硬體或者資料問題)(重複4次還是失敗以後放棄執行)

推測執行(某個結點算的特別慢會再找一個tasktracker做同樣的事情,誰先算完終止另一個)(保證不會因為某一兩個tasktracker的故障導致效率很低)

MapReduce的工作原理

mapreduce是一種並行可擴充套件計算模型,並且有較好的容錯性,主要解決海量離線資料的批處理。實現下面目標 易於程式設計 良好的擴充套件性 高容錯性 mapreduce由jobtracker和tasktracker組成。jobtracker負責資源管理和作業控制,tasktracker負責任務的執行。 程式...

MapReduce基本原理

在圍繞hadoop形成的大資料技術生態當中,mapreduce的地位,在早期是處於核心地位的,但是伴隨著資料處理實時性需求的不斷提升,更多新的計算框架出現,mapreduce的地位受到壓制,但是作為hadoop原始計算框架,還是需要相應程度的瞭解和掌握的。今天的大資料入門分享,我們來具體講一講map...

MapReduce執行原理詳解

定義 mapreduce是一個用於處理海量資料的分散式計算框架。 特點 資料分散式儲存 hdfs 作業排程 任務分配 進出規則 容錯 故障處理 機器間通訊 伺服器通訊協調 等。 舉個簡單的例子 比如說有一堆鈔票,面值大小為10 50 100,103個人來統計各種面值的數量?首先這堆鈔票均分給100個...