MapReduce 是兩位谷歌研究員,從 Functional Programming 借鑑的觀念,又是一個典型的分而治之(divide and conquer)技巧的應用,是 Hadoop 的核心觀念。因為 MapReduce 非常適合分佈式運算,被認為是大數據時代的軟體架構,適當的配置之下,就像韓信點兵多多益善,數據再多也不怕。

在這個 「21 天一定要學會點什麼」(Teach Yourself XX in 21 Days 系列書籍就是明證)的年代,快速學會重要的觀念是一定要的,換個角度,如何把重要觀念講的讓人一聽就懂,那是善莫大焉啊!於是,我們就看到一場場說故事比賽的好戲啦。

Hacker News 在 2011 年,有一個(在圈內)很有名的解釋:我來跟你說說我怎樣跟老媽解釋什麼叫 MapReduce…

We want to count all the books in the library. You count up shelf #1, I count up shelf #2. That's map. The more people we get, the faster it goes.
Now we get together and add our individual counts. That's reduce.

可能還有人嫌這樣的解釋還不夠家長里短,白居易以老媼解詩不夠淺白,用廚房裡做菜、做辣椒醬的做法來解釋,這樣就更親民易解了。既然大家都說有一一圖解千言,圖說比文字厲害多了,Data Science Central 前幾天乾脆把 2014 在網上流傳的一張圖片翻出來,讓大家明白什麼叫 MapReduce。

-

明白了嗎? 說實話,我是似懂非懂,不求甚解啦。

Advertisements