雞蛋挺住體;及MapReduce矩陣分析
今日面試題:雞蛋挺住體
兩個雞蛋:兩個軟硬程度一樣但未知的雞蛋,它們有可能都在一樓就摔碎,也可能從一百層樓摔下來沒事。有座100層的建築,要你用這兩個雞蛋以最少的次數確定哪一層是雞蛋可以安全落下的最高位置。可以摔碎兩個雞蛋。
MapReduce矩陣的分析
題目:
一個很大的2D矩陣,如果某點的值,由它周圍某些點的值決定,例如下一時刻(i,j) 的值取當前時刻它的8鄰點的平均,那麼怎麼用MapReduce來實現。
分析:
首先,讓我們以WordCount為例來解釋MapReduce是怎麼工作的。
原始狀態下,輸入–Map — Shuffle — Reduce — 輸出
假設有如下的兩個文字檔案來執行WorkCount程式:
Hello World Bye World
Hello Hadoop GoodBye Hadoop
map資料輸入
Hadoop針對文字檔案預設使用LineRecordReader類來實現讀取,一行一個key/value對,key取偏移量,value為行內容。
如下是map1的輸入資料:
Key1 Value1
0 Hello World Bye World
如下是map2的輸入資料:
Key1 Value1
0 Hello Hadoop GoodBye Hadoop
map輸出/combine輸入
如下是map1的輸出結果
Key2 Value2 Hello 1 World 1 Bye 1 World 1
如下是map2的輸出結果
Key2 Value2 Hello 1 Hadoop 1 GoodBye 1 Hadoop 1
combine輸出 Combiner類實現將相同key的值合併起來,它也是一個Reducer的實現。
如下是combine1的輸出
Key2 Value2 Hello 1 World 2 Bye 1
如下是combine2的輸出
Key2 Value2 Hello 1 Hadoop 2 GoodBye 1
combiner視業務情況來用,減少MAP->REDUCE的資料傳輸,提高shuffle速度,就是在map中再做一次reduce操作。combiner使用的合適,可以在滿足業務的情況下提升job的速度,如果不合適,則將導致輸出的結果不正確。
對於wordcount來說,value就是一個疊加的數字,所以map一結束就可以進行reduce的value疊加,而不必要等到所有的map結束再去進行reduce的value疊加。
reduce輸出
Reducer類實現將相同key的值合併起來。
如下是reduce的輸出
Key2 Value2 Hello 2 World 2 Bye 1 Hadoop 2 GoodBye 1
即實現了WordCount的處理。
下圖是官方的流程圖:
有了這個基礎知識,我們來看如何用MapReduce來解決上述問題。
以下標對作為map的key,遇到(i,j),生成(i-1,j-1),(i-1,j),etc,然後在reduce時merge相同的key,並計算value。
當你理解了MapReduce的工作原理,是不是很簡單?
本文來自微信:待字閨中,2013-07-10釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- Magic Index;及雞蛋挺住體分析Index
- MapReduce矩陣;及快排單連結串列之解答矩陣
- SWOT分析、PEST分析、GE矩陣、波士屯矩陣等分析方法矩陣
- 矩陣公排系統開發(詳情分析)|矩陣公排模式開發邏輯及方案矩陣模式
- 威脅分析矩陣(轉載)矩陣
- 賦權分析矩陣(轉載)矩陣
- 生成螺旋矩陣(方陣、矩陣)矩陣
- 矩陣分解(MF)方法及程式碼矩陣
- 自媒體矩陣怎麼打造?自媒體矩陣有什麼優勢?矩陣
- 鄰接矩陣、度矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 田忌賽馬博弈矩陣分析矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 矩陣矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 3D圖形:矩陣的行列式,矩陣的逆、正交矩陣、齊次矩陣3D矩陣
- 矩陣中最大的二維矩陣矩陣
- 求任意矩陣的伴隨矩陣矩陣
- RMAN 相容性矩陣及版本比較矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 矩陣和陣列矩陣陣列
- 自媒體矩陣運營是什麼意思?自媒體矩陣應該怎麼運營?矩陣
- 旋轉矩陣(Rotate Matrix)的性質分析矩陣
- 理解矩陣矩陣
- 矩陣相乘矩陣
- 矩陣分解矩陣
- 稀疏矩陣矩陣
- Numpy 矩陣矩陣
- 穿越矩陣矩陣
- 混淆矩陣矩陣
- 魔方矩陣矩陣
- 海浪矩陣矩陣
- 8.6 矩陣?矩陣
- 螺旋矩陣矩陣
- 找矩陣矩陣
- 矩陣乘法矩陣
- 什麼是新媒體矩陣運營?運營矩陣其實很簡單矩陣
- 原地旋轉矩陣(不申請新的記憶體空間旋轉矩陣)矩陣記憶體