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