現在要完成一項海量數據處理的工作。大約有500G的.gz log文件現在要從log中提取一些信息做統計工作~因為文件太大,所以打算用hadoop來做?,F在已經安裝了hadoop,然后需要自己寫mapreduce打算用腳本來寫,比如shell,python。可是因為剛入手,所以對mapreduce不是很理解。不知哪位高手能用生動的語言解釋一下什么事mapreduce,對于我這個問題來說,mapreduce有分別起到什么作用呢?
2 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
比如說要查日志中不同單詞出現的次數,把日志平均(注意這個評價不止是說大小,還有概率)分成兩份(map),然后由兩臺機器分別去統計,A機器查到的結果是 {"hello": 3, "world": 5}, B機器查到的結果是 {"world": 4, "program": 2} 。兩個一合并(reduce),就得到最終結果 {"hello": 3, “world": 9, "program": 2}
這樣一個簡單的例子你可以看到,一個map-reduce的過程,就是將一個任務平均劃分(通常用上hash以保證平均)成多個互不依賴的子任務分別處理(map),然后再將子任務的結果合并(reduce)的過程。
并不是所有的任務都可以用map-reduce模型來完成的,但是Google通過對模型的簡化,使得這樣一套系統實際上也能完成相當多的實際任務。
- 2 回答
- 0 關注
- 805 瀏覽
添加回答
舉報
0/150
提交
取消