近來雲計算越來越熱門了,雲計算已經被看作IT業的新趨勢。 雲計算可以粗略地定義為使用自己環境之外的某一服務提供的可伸縮計算資源,並按使用量付費。 可以通過 Internet 訪問「雲」中的任何資源,而不需要擔心計算能力、頻寬、存儲、安全性和可靠性等問題。
從企業的角度來說,日益增長的資訊已經很難存儲在標準關聯式資料庫甚至資料倉儲中。 這些問題提到了一些在實踐中已存在多年的難題。 例如:怎樣查詢一個十億行的表?怎樣跨越資料中心所有伺服器上的所有日誌來運行一個查詢?更為複雜的問題是,大量需要處理的資料是非結構化或者半結構化的,這就更難查詢了。
「雲計算」領域已經成為眾多跨國IT巨頭未來「決鬥」的主戰場。 由於意識到「雲計算」將是一場改變IT格局的劃時代變革,幾乎所有重量級跨國IT巨頭從不同領域和角度開始在「雲計算」領域紮根,這個陣營的主力包括Amazon、Google、IBM、Mircosoft、VMware、 Cisoco、Intel、AMD、Oracle、SAP、HP、Dell、Citrix、 Redhat、Novell、Yahoo等等。 美國矽谷目前已約有150家涉及「雲計算」的企業,新的商業模式層出不窮。
「雲計算」龐大的市場規模超乎想像。 按照最樂觀估計,IDC推算未來3年全球「雲計算」領域將有8000億美元的新業務收入。 顯然,全球各IT巨頭競相進入「雲計算」領域背後的原因是未來天文數位般的市場規模以及由此帶來的無比光明的發展前景。 自2011年開始,各大IT企業已經展開一場硝煙滾滾的爭奪戰,以實現自己在「雲計算」市場中未來的霸主地位。
Hadoop簡介
Apache Hadoop 是一個軟體框架,它可以分散式地操縱大量資料。 它于2006年首次提及,由 Google、Yahoo! 和 IBM 等公司支援。 可以認為它是一種 PaaS 模型。
它的設計核心是 MapReduce 實現和 HDFS (Hadoop Distributed File System),它們源自 MapReduce(由一份 Google 檔引入)和 Google File System。
MapReduce 是 Google 引入的一個軟體框架,它支援在電腦(即節點)集群上對大型資料集進行分散式運算。 它由兩個過程組成,映射(Map)和縮減(Reduce)。
在映射過程中,主節點接收輸入,把輸入分割為更小的子任務,然後把這些子任務分佈到工作者節點。
工作者節點處理這些小任務,把結果返回給主節點。
然後,在縮減過程中,主節點把所有子任務的結果組合成輸出,這就是原任務的結果。
MapReduce 的優點是它允許對映射和縮減操作進行分散式處理。 因為每個映射操作都是獨立的,所有映射都可以並存執行,這會減少總計算時間。
對外部客戶機而言,HDFS 就像一個傳統的分級檔案系統。 可以創建、刪除、移動或重命名檔,等等。 但是 HDFS 的架構是基於一組特定的節點構建的,這是由它自身的特點決定的。 這些節點包括 NameNode(僅一個),它在 HDFS 內部提供中繼資料服務;DataNode,它為 HDFS 提供存儲塊。 由於僅存在一個 NameNode,因此這是 HDFS 的一個缺點(單點失敗)。
存儲在 HDFS 中的檔被分成塊,然後將這些塊複製到多個電腦中(DataNode)。 這與傳統的 RAID 架構大不相同。 塊的大小(通常為 64MB)和複製的塊數量在創建檔時由客戶機決定。 NameNode 可以控制所有檔操作。 HDFS 內部的所有通信都基於標準的 TCP/IP 協定。
NameNode 是一個通常在 HDFS 實例中的單獨機器上運行的軟體。 它負責管理檔案系統名稱空間和控制外部客戶機的訪問。 NameNode 決定是否將檔案對應到 DataNode 上的複製塊上。 對於最常見的 3 個複製塊,第一個複製塊存儲在同一機架的不同節點上,最後一個複製塊存儲在不同機架的某個節點上。 注意,這裡需要您瞭解集群架構。
實際的 I/O 事務並沒有經過 NameNode,只有表示 DataNode 和塊的檔案對應的中繼資料經過 NameNode。 當外部客戶機發送請求要求創建檔時,NameNode 會以塊標識和該塊的第一個副本的 DataNode IP 位址作為回應。 這個 NameNode 還會通知其他將要接收該塊的副本的 DataNode。
NameNode 在一個稱為 FsImage 的檔中存儲所有關于檔案系統名稱空間的資訊。 這個檔和一個包含所有事務的記錄檔(這裡是 EditLog)將存儲在 NameNode 的本地檔案系統上。 FsImage 和 EditLog 檔也需要複製副本,以防檔損壞或 NameNode 系統丟失。
(責任編輯:杜慶先)