We should forget about small efficiencies — Donald Knuth
4 May
子曰:「工欲善其事,必先利其器。」
當然,比賽最好先熟一下工具會比較有信心。我第一個要先介紹的 framework 就是 Hadoop (Wikipedia: Hadoop)。
因為 Hadoop 算是一個非常知名的雲端運算平台,加上 Wikipedia 寫的也非常的仔細,所以我這邊就不贅述了。但是因為它的設定不太容易而且費時,加上這部份對於簡單的程式來說,並沒有太大的影響。所以我推薦在開發階段,可以先用 Hadoop Virtual Image 就可以了。
Hadoop Virtual Image 是一個 Ubuntu Linux 7.04 的 OS, 然後內建了 Java machine (Sun JRE 6 u2) 以及 Hadoop 0.13.0 的一個 virtual machine image。我們可以用免費的 VMware Player 來執行它。
雖然它沒有 GUI,但是最令人感到興奮的是,它預設已經把 Hadoop 的環境設定好成 pseudo-distributed mode (也就是在同一台電腦上用不同的 port 當作不同的機器,然後在利用 ssh 去跟這些假機器作溝通)。雖然預設只有一個機器,不過目前應該無傷大雅。
以下就是用 VMware Player 執行這個 virtual machine image 的樣子。
然後用 guest 登入:
因為這個 guest OS 已經裝了 Hadoop, 所以我們可以執行它裡面的範例程式來簡單的跑一下。指令如下:
這個範例就是在 Hadoop 的平台上, 用蒙地卡羅法 (Monte Carlo Method) 來分散計算 Pi 的值。換句話說,這就是最簡單的雲端運算 (因為只有一個機器)。
下面是跑完的結果:
有看到上面的正常結果,代表我們的環境是正常的,可以開始作一些程式開發了。為了更了解雲端運算,它的 working flow 是一定要先知道。下一篇就是要來講 Google 所提出來的 MapReduce framework。
Popularity: 9% [?]
Leave a reply