Hadoop、spark、SaaS、PaaS、IaaS、云計算概念區(qū)分?

責任編輯:editor005

2016-07-25 14:48:36

摘自:知乎每日精華

我覺得,要想正確理解一門技術,一定要理解它產(chǎn)生的背景,解決的問題。我知道你這個土壕會渴,我想給你挖水井,通水管,安水表,收水費來掙錢糊口。

我覺得,要想正確理解一門技術,一定要理解它產(chǎn)生的背景,解決的問題。

 

背景一:世界需要更多的計算能力

信息技術時代的基石是建立在“計算”之上的。以搜索引擎為例,早期的搜索引擎是人工分類索引的,類似黃頁,但是隨著網(wǎng)站數(shù)量的增多,人工索引的工作量變得巨大,而且更新時效低得難以忍受了。后來的一波搜索引擎都采用了由計算機算法自動索引,查找相關文檔,并排序展示的方式。這種方式就導致了對計算能力的巨大需求,類似的趨勢出現(xiàn)在多種技術領域,即世界需要更多的計算能力。

背景二:單挑不如群毆,好漢敵不過人多

Intel其實已經(jīng)很努力了,從19xx年人家就按摩爾定律狂奔,CPU的計算能力每一年半翻一倍,但是相比于業(yè)界的計算需求,不夠快!但沒關系,一個CPU不夠快,那我搞10000個,甚至100萬個,反正CPU是錢能買到的東西,錢能解決的問題,就不是問題。大概從90年代之后,超級計算機就是拿CPU搭積木玩兒了。

背景三:錢不是問題,問題是沒錢

但互聯(lián)網(wǎng)公司并不太用超算的體系結構(基于MPI的傳統(tǒng)HPC架構),主要原因有三:一是系統(tǒng)投入大,超算架構面向的應用多是計算密集,文件IO少的情況,但互聯(lián)網(wǎng)公司文件IO多,這樣會導致在存儲系統(tǒng)和網(wǎng)絡上要投入高成本才能有好性能;二是超算一般都是灰常牛逼的服務器加盤陣,硬件穩(wěn)定性本來就好,所以容錯機制上不太重視,基本上是用checkpoint技術來搞錯誤恢復。牛逼服務器和盤陣,都是白花花的銀子呀。三是編程模型難用。我寫過MPI的程序,基本上腦子里要設想成千上萬個進程的運行狀態(tài)以及它們之間的通信過程,還經(jīng)常有全局的同步,想寫好也不容易。所以這個坑Google是不會跳,too smart to jump in.

正題一:一個好漢三個幫,一個Hadoop三個樁

Hadoop就是poor man's 天河二號。不要把Hadoop看成一個整體,拆開里邊看看就清楚地知道它干了什么了。Hadoop包括以下三個核心組件:

HDFS,這東西替換了盤陣,使得你有地方存數(shù)據(jù)了。相當于你的電腦有了C盤,D盤等。

YARN,這東西是一個集群管理和調度軟件。相當于你的電腦裝上了Windows,現(xiàn)在可以跑各種應用程序了。YARN負責讓你的程序跑起來,萬一掛了還能自動幫你重啟進程。

MapReduce,定義了集群上數(shù)據(jù)處理的基本操作。相當于你的電腦上裝了Visual Studio,現(xiàn)在可以開發(fā)自己的軟件了。

明白了么,你自己買一坨爛電腦,把Hadoop往上一裝,相當于去電腦城給你的新電腦裝了個正版Windows + Visual Studio,回來就可以開心地擼代碼了,代碼自動就能安全高效地跑在那一坨爛電腦之上,跑得還挺快,是不是很棒?

正題二:光能用是不夠的,好用才是我所需

客戶是不會滿足的,Hadoop很牛逼了,但是程序員的惡夢是不會離開的:“什么?需求又改了?!!” 如果說MPI是分布式計算的匯編語言,那么Hadoop的MapReduce相當于C,把所有計算都拆成Map和Reduce兩個過程真是:too young, too simple, sometimes naive。Spark相當于分布式計算里的Java,萬物都是RDD,在RDD之上你可以方便地進行更高層的操作。所以Spark和Hadoop不是一個層次的東西,大家一看去年的新聞說Spark排序速度是Hadoop的100倍,所以Hadoop要死,Spark要火,我只能說“呵呵”。但我個人覺得Spark還是蠻有前途的,易用性是大家所愛呀……Spark和Hadoop雖有重合,但Spark是不可能也沒打算替換整個Hadoop的。

偏題一:XaaS是什么東西?是生意

aaS = "as a Service",翻譯過來就是:你出錢,我服務你。

SaaS 賣軟件的。你什么也不用干,只要出錢,我直接給你能用的軟件。比如Gmail:給你郵件軟件直接用, http:// github.com :給你版本控制軟件直接用,Office 365:給你辦公軟件用,Photoshop Express:給你修圖軟件用?!逗诳团c畫家》講了互聯(lián)網(wǎng)軟件的優(yōu)點,有興趣可以自己瞅。

PaaS 賣平臺的。你自己寫你的軟件,但是運行你軟件的平臺由我來提供,保證你的軟件運行。流行過的SAE什么之類的,你拿(世界上最好的編程語言)PHP來寫個網(wǎng)站,上傳給我,我來給你把網(wǎng)站跑起來。你專心寫(抄)你的軟件,其它的事兒交給我。

IaaS 賣虛擬機的。我給你一坨虛擬機用,保證它們正常跑,能連網(wǎng)。虛擬機你怎么用隨便你。代表作AWS, Azure,OpenStack等。這東西優(yōu)勢明顯:比PaaS安全,因為虛擬機操作系統(tǒng)完全由你控制,別人很難改你的代碼或數(shù)據(jù),PaaS就難說了;比自己搞機器省心,不用擔心虛擬機掉盤壞主板(關鍵數(shù)據(jù)和服務也一樣要備份!小心我大藍翔的挖掘機!)很有前途!

偏題二:什么是云計算?

我知道你這個土壕會渴,我想給你挖水井,通水管,安水表,收水費來掙錢糊口。怕你不給我開門,所以我穿上制服,說我是自來水公司(哦,不,我是搞云計算的)。十年后,可能每個公司甚至個人都會擁有相當于十年前google的計算能力,但是這幫新人對計算的理解可能連30年前的google都比不上(對,30年前google不存在,正如這幫新人腦中的分布式計算知識……),但是這幫新人都是壕呀!所以我們這些懂分布式計算的diao絲們,想辦法搞得利用這些牛逼的計算能力就像請客吃飯一樣簡單,來騙點兒錢,是為云計算。

總結:其實云計算很牛逼

如果無法操控,汽油不過是一把火。只有包上汽車這個外殼,它才能把你送到你想去的地方。計算資源就是未來的汽油,我們搞云計算不是忽悠你們,搞云計算是為了讓你們指哪去哪,解決你們手頭上需要算一算的問題。上面說的一切東西,都是為了使計算觸手可得,而且管夠。要想汽車跑得快,并不是說多加燃料就行,云計算就是要解決如何充分利用原始計算資源,減少自身無謂損耗的問題?,F(xiàn)在并不是一個已經(jīng)被完全解決的問題。

知乎原文鏈接:http://www.zhihu.com/question/32326748/answer/57393279?utm_source=tuicool&utm_medium=referral

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號