什麼是Cloudera? 什麼是Hadoop? 可能很多人聽都沒聽過,也許很多人可能聽過,但是卻不知道這是什麼東西,也可能已經很多人研究過,但是始終搞不太懂到底這些東西是個啥東西? 如果説這個Cloudera是Facebook的前工程師跳出來開的公司,而Hadoop則是許多知名網站所使用的分散式雲端運算平台,可能大家會比較了解一些 …
Cloudera這家公司的名稱,可以很清楚的是由Cloud加上era所組成,也就是指雲端年代的意思,是由Jeff Hammerbacher,前Facebook的工程師所創立。
這篇文章”Meet The Engineer Who Built Facebook’s Massive Data Infrastructure“就是訪問Jeff的創業想法。Jeff說在 Facebook 最大的幫助是親手接觸了巨大的資料處理,也就是Petabytes等級的規模(1PB=1000TB)。要讓這麼巨量的資料穩定的運作及分析,跟幾個TB的資料是完全不同的,這種等級是我們無法想像的。
要在網路上處理這種規模的資料,目前比較經常被使用的平台就是Hadoop,而Facebook就是使用Hadoop下的HBase資料庫。
Openfoundry的這篇”Cloudera 釋出 Hadoop 雲端運算散佈套件“就有提到,處理這種大量資料不是成本過高就是技術上太過困難,Cloudera 希望將開放源碼社群的力量帶入此一市場,也就是Cloudera讓企業使用Hadoop的門檻降低了。
相關Hadoop的更多資料可以參考Hadoop台灣網站: http://www.hadoop.tw/
在Hadoop的平台下,Facebook所使用的大型資料庫HBase就是由Google BigTable來的開放原碼分散資料庫,也就是兩者是系出同門,這篇文章” Understanding HBase and BigTable“則很清楚的說明了BigTable與 HBbase。
但是在這篇文章”HBase: Shops swap MySQL for open source Google mimic“中,可以很清楚看到HBase正被許多企業使用,但是文中也提到HBase還是不能完全取代 MYSQL,所以只有當scale (規模)是重點時,才會使用HBase,當你要把每秒兩萬個事件分散到大量的MYSQL伺服器時是很沒有效率的事情。
以下是Cloudera談到關於Scale的問題:
如果你有興趣的話,可以看看這裡上百部的Cloudera影片: http://vimeo.com/cloudera/videos
從這些資料的了解,也許你可以更清楚什麼可以稱為雲端運算,並不是把東西搬到網路上而已,而是整個架構都完全顛覆了傳統的資源分配,說得簡單一些就是: 雲端上的東西是可以任意打散,也可以任意再組合,所謂任意打散就是你可以把一個工作打散交給多個資源去處理(例如把一個計算交給一百部電腦去一起處理),而所謂任意組合就是你可以把多個資源當成一個資源使用(例如把一百部電腦當成一台使用),而這些打散跟組合的資源,可能分散在全球各地。
Hadoop計劃
Hadoop是Apache軟體基金會 (Apache Software Foundation) 底下的開放原始碼計劃 (Open source project),最初是做為Nutch這個開放原始碼的搜尋引擎的一部份。Hadoop是以java寫成,可以提供大量資料的分散式運算環境,而且Hadoop的架構是由Google發表的BigTable及Google File System等文章提出的概念實做而成,所以跟Google內部使用的雲端運算架構相似。目前Yahoo!及Cloudera等公司都有開發人員投入Hadoop的開發團隊,也有將近一百個公司或組織公開表示使用Hadoop做為雲端運算平台,Google及IBM也使用Hadoop平台為教育合作環境。
Hadoop中包括許多子計劃,其中Hadoop MapReduce如同Google MapReduce,提供分散式運算環境、Hadoop Distributed File System如同Google File System,提供大量儲存空間、HBase是一個類似 BigTable 的分散式資料庫 (見表一),還有其他部份可用來將這三個主要部份連結在一起,方便提供整合的雲端服務 ….
Hadoop是目前最常見且實際運用在大規模商業環境上的雲端運算平台之一,強大而完整的基礎架構可以減少大量的雲端架構開發的時間,大量部署時也相當迅速,不但有許多重量級的雲端運算服務提供者正在使用及投入開發,也與Google的雲端環境相似,使Hadoop成為教育訓練、學術研究及雲端服務開發的最佳平台。
雖然有Hadoop這麼便利的雲端運算環境,又有成功的雲端服務可以參考,然而在組織內部導入雲端運算的架構及文化時,仍需做好充分的規劃及時程表,不然將會影響原有服務的穩定及品質,不但不能享受雲端運算帶來的便利,反而徒然增加管理及營運成本,使雲端運算淪為失敗的行銷名詞。
http://www.cc.ntu.edu.tw/chinese/epaper/0011/20091220_1106.htm
自動引用通知: In-memory Computing 是什麼? « 網路誌::數位‧網路‧社群::網路行銷與電子商務網站