Hadoop實現了雲計算中的哪些構件,又有哪些構件是沒有實現的,用Hadoop可以搭建一個完整的雲計算平台么?


感謝邀請!

這裡糾正一點吧,Hadoop並不完全代表雲計算,所以,要用Hadoop搭建完整的雲計算平台,答案是不夠。我們常說雲計算,實際上還是通過計算機的大規模或者說海量處理來為生活中各式各樣的人和各行各業服務——所以,核心在「服務」。(當然這是我的理解),關於服務,展開來就是常用的那3種(也是事實上的標準):SaaS,PaaS,IaaS。對雲計算來說,公有和私有,虛擬和存儲,這其實是相對討論的核心。

回頭說Hadoop。在Google三大論文的直接刺激下,Hadoop社區興起,而在眾多的開源實現中,Hadoop(主項目)可以說是所有已知雲計算方面開源項目的一個Top項目。

雲計算中有哪些構件?發展到目前的技術與規模,並沒有一個確切的定論,今天的說的話明天可能就不一樣了。但對Hadoop來說,實現了的部分,就是大部分企業在不斷發展中所遇到的大部分問題。直接上圖:

從整體生態系統的角度,從底層存儲,到中間的計算模型和框架,再到上層的邏輯處理和流、顯示,都有相應開源的實現。這就是你說的構件了。

包括我們看到的Hadoop2.0中,引入的新的處理框架,Spark,Storm,YARN(取代MR),都是Hadoop生態系統的完善與實現。

Hadoop實現的是在簡易硬體的基礎上進行盡量高可用性海量計算與處理的中上層模型。Hadoop處理了存儲(也只是一部分),虛擬化是沒有涉及的,而底層硬體Hadoop也是不涉及的,不管是Hadoop還是其他的項目,只是在軟體的層面想通過縱向或者橫向的拓展解決所有的問題是不現實的。Hadoop在硬體這方面,只是在實現中預留或者接入硬體特性,也就是在虛擬化這方面Hadoop只是個「APP」,不是「始作俑者」(用詞不當了)。

那麼,完整的雲計算平台呢?

按照企業級來說,是要看具體的企業方向和企業類型的,包括IBM和VMware都有提供不同的解決方案。大致上一定是由單點--&>集群--&>多層(准分散式)--&>硬體--&>分散式(地域分布)來解決的。具體到Hadoop體系的技術,直接去對應上圖就好了。

從雲計算這個概念出現到今天,資料可以說「浩如煙海」了,但很多資料只是互相複製黏貼,並沒有說到雲計算的核心。我想提出的一個觀點是,完整的雲計算平台,依賴的是業務,提供的是存儲與支持。

沒有業務需求而是照搬網上的資料或者自認為「活用」了某些技術,都可能只是「娛人娛己」。我們看一下互聯網負載均衡技術是如何發展的就就更容易理解雲計算:

客戶端緩存--&>CDN緩存--&>ApacheNginx靜態頁面緩存--&>PHP和Java動態內存--&>MemcacheOther Nosql--&>MysqlOracle--&>HDFSOther Big Table

從技術的角度看,所有問題解決起來都是層次化的(大家肯定都有寫Demo吧),都是根據不同的需求引入不同的技術,在單層單點乃至集群都無法解決問題的時候,新的計算框架,雲計算與網格計算乃至動畫需要的大規模渲染都在需要的時候順理成章的引入。總之,完整的雲計算平台,對於不同的公司業務都是不同的,拿騰訊來說,平台的組件多如牛毛,「平台」只是提供最基礎的服務:存儲與支持,其他的都需要業務根據自身的特點在其上進行構建(相信大公司都是有自己的完整方案的,這裡我就不能再說了……),至於提高什麼樣級別的這種「服務」,就要看公司的業務規模,需要支撐的體系,乃至公司的決策戰略了等等。

建議去了解IBM與VMware的「雲」,了解SkyDirve,Amazon與icloud的「服務」,就會有更明確的認識。

倉促之間,難免錯漏,回頭有空把流程圖畫一畫補上~~~ 歡迎挑刺,也樂意與大家討論。


hadoop是雲計算中的一個環節,不能完全代表雲計算的所有部分。


推薦閱讀:

怎麼看待Hadoop Summit 2016 和 Spark summit 2016?
下載prebuilt版的Spark後,必須運行sbt/sbt assembly 後才能使用嗎?
什麼是自助式BI?和傳統BI(商業智能)相比有何優劣勢?
數據之路(Hadoop)我該如何打好基礎?
生產環境下cloudera的cdh版本更受歡迎,但是貌似cloudera對於YARN的開發力度不是很突出,所以在apache與cdh版本選擇的時候,大家是怎麼考慮的?

TAG:Hadoop | 雲計算平台 |