Amazon、Facebook、Yahoo 都愛 Hadoop!掌握 Hadoop 包你人見人愛
認識這隻「黃色大象」嗎?這可是 Hadoop 官網上的代表吉祥物喔,也是 Hadoop 的 Logo。
- Hadoop 是個新造的字,也象徵了一個新時代的來臨
「Hadoop」是其原創者 Doug Cutting 新造的名詞,字典裡並沒有這個英文單字。Doug Cutting 曾表示,Hadoop 這個名稱的由來,是來自於自己小孩所擁有的一隻絨毛填充黃色大象玩具。
Doug 不只開發了 Hadoop ,還包括 Lucene 和 Nutch。 Doug 曾在媒體訪談中表示,自己開始撰寫開放原始碼軟體至今超過 10 年了,第一個參與的就是 Lucene 專案,後來,Lucene 隨著 Doug 離開 Yahoo 被帶進 Apache 軟體基金會(Apache Software Foundation,ASF),此後,又參與了 Nutch 專案,同樣負責 Web 搜索技術;再來就是 Hadoop 。而過去幾年來,Doug 一直都在做跟 Big Data 相關的應用。
Doug 在主導 Nutch 專案開發時,遭遇了處理 Big Data 的問題,而此時 Google 正好對外發佈了自家搜尋引擎的 3 大關鍵技術:Google File System、BigTable 與 MapReduce 演算法。(讀者可參閱:〈 Google 為什麼能在 0.15 秒找到數十萬筆資料?認識搜尋霸主的核心技術 〉一文)。
Doug 參考了這 3 項技術,並利用 Java,發展出自己的 DFS 檔案系統和 MapReduce 演算法,來解決 Nutch 所遭遇的問題,而 Doug 的技術也讓同為搜尋引擎一方之霸的 Yahoo 看上,進而延聘了 Doug。
不過,當時的 Yahoo 並不需要 DFS 和 MapReduce 等技術,所以,Hadoop 就此誕生了。(真的很想知道,Yahoo 如果在當時沒有忽略這兩項技術,搜尋引擎霸主之爭的結果是否就不相同了呢?)。
- Hadoop 到底是什麼?
綜合以上說明可知,Hadoop 是 ASF 所發展的雲端運算技術,可以藉由平行運算架構同時運算大量資料,目標是以低成本、高效率的方式來處理資料。其主要核心技術使用 Java 開發因此具備跨平台的功能,並免費開放原始碼,目前可執行於 Linux、Mac OS/X、Windows 和 Solaris 等作業系統,以及一般商用等級的伺服器上。優點在於有良好的擴充性,部署 (Deploy) 迅速,同時能自動分散系統的負荷。
Hadoop 技術,多被應用於建立搜尋索引以及對處理記錄進行分析,主要由 3 個子系統所組成,其技術分別來自 Google 所發表的 BigTable、MapReduce 和 Google File System。
1. Hadoop Distributed File System:
技術來自 Google File System,是一種儲存系統。儲存的資料量相當龐大,而且被分散到數個不同的伺服器上,但透過特殊技術的處理,讓使用者在操作系統時,完全感受不到資料來源其實是分散在不同的地方。
2. HBase:
技術來自 Google 的 BigTable。其功用與 BigTable 相同,是一種分散式儲存系統,其類似 RDBM 資料表的資料結構 (Multi-Dimensional Map),並具備高可用性、高效能,以及容易擴充容量等特性。其會將外來的網頁資料在經過分析之後,以欄位格式儲存在許多被稱為「節點」(Node) 的伺服器中。
3. Hadoop MapReduce:
技術來自 Google MapReduce,是一個分散式運算環境; Map 是「劃分」也就是把一個任務拆成多個子任務進行運算,Reduce 是「化簡」,是指將運算結果重新組合、建立索引後再送回節點。
另外值得一提的是,大型主機架構屬於垂直擴充(Vertical Scaling)方式,如果要提升運算能力,通常是讓單一伺服器新增更多的運算核心,也就是直接提高現有伺服器的運算能力;但是,像 Hadoop 是採取水平擴充(Horizontal scaling)架構,它是透過增加伺服器的數量,就能提高應用程式可以處理的資料量,這種架構不但可以節省成本,系統的容錯能力也更好。
目前已經採用 Hadoop 運算平台的知名企業有 Adobe、Amazon、eBay、AOL、Facebook、The New York Times、Twitter、JP Morgan Chase 和 Yahoo 等。
國內也有不少科技大廠大舉延聘 Hadoop 工程師,像是趨勢科技、神通電腦、廣達電腦、台達電等等。其主要的工作內容是針對大量資料的運算或儲存需求,進行相關資訊架構及平台的設計、開發、測試等。
最後,還是要提醒一點,如果企業所要處理的資料並不複雜也不龐大,那麼採用 Hadoop 其實是多餘的,還是要視實際的需求與問題判斷才能讓系統發揮最大的效能。
- 延伸閱讀:
Hadoop 不是萬能,破除七大迷思讓你做好 Big Data/Cloud Analysis
Big Data 時代,我們需要有超越 Hadoop 和 MapReduce 的殺手級技術
(資料來源: 圖說雲端運算、 wikipedia、 Apache Hadoop;圖片來源: IntelFreePress, CC Licensed)