初識Hadoop

 What is Hadoop

Hadoop是由Apache基金會所開發的分佈式系統基礎架構。它的名字的由來是他的創建者Doug Cutting受他孩子給一個黃色的玩具大象命名的啓發,沒有任何含義,只是爲了簡潔。它的框架最核心的部分就是HDFS(Hadoop Distributed File System,分佈式文件系統)MapReduce(並行計算框架)HDFS爲海量數據提供了存儲,MapReduce爲海量數據提供了計算。

通俗的說Hadoop是一套開源的、基礎是Java的、目前能夠讓數千臺普通、廉價的服務器組成一個穩定的、強大的集羣,使其能夠對pb級別的大數據進行存儲、計算。已經具有了強大穩定的生態系統,也具有很多使用的延伸產品。比如雅虎正在開發的用於查詢的Pig, 做分佈式命名服務的ZooKeeper, 做數據庫的Hive等。

Hadoop核心架構

Hadoop由許多元素構成,其最底部是HDFS(Hidoop Distribute File System),它存儲Hadoop集羣中所有存儲節點上的文件,HDFS的上一層是MapReduce引擎,該引擎由JobTrackers 和 TaskTrackers 組成。

1)HDFS

HDFS有着高容錯性(fault-tolerant)的特點,並且設計用來部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現以流的形式訪問(streaming access)文件系統中的數據。

2)MapReduce

MapReduce是Google的核心算法(GFS、MapReduce、BigTable,Google三駕馬車)之一,用於海量數據計算,那麼它的計算原理是什麼呢?

Google在《MapReduce:超大集羣上的簡單數據處理》一文中提到“抽象模型的靈感來自Lisp和許多其他函數語言的map和reduce的原始表示.我們認識到我們的許多計算都包含這樣的操作:在我們輸入數據的邏輯記錄上應用map操作,來計算出一箇中間key/value對集,在所有具有相同key的value上應用reduce操作,來適當的合併派生的數據。”通俗的理解就是:

map首先將雜亂無章的原始數據按照某種特徵將數據歸納起來形成鍵值對,每個key中的value都是相關的,然後利用reduce對相關的數據進行合併。

Hadoop的應用領域
數據備份/文件歸檔利用了hadoop海量數據的存儲能力
數據倉庫/數據挖掘分析web日誌,分析用戶的行爲(如:用戶使用搜索時,在搜索結果中點擊第2頁的概率有多大)
搜索引擎設計hadoop的初衷,就是爲了快速建立索引。
雲計算:據說,中國移動的大雲,就是基於hadoop的




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章