對于我們這些文科,商科生來說。我們剛剛搞懂服務(wù)器,數(shù)據(jù)庫,C++,java等基礎(chǔ)語言是個什么東西的時候,大數(shù)據(jù)時代來了,科技蜀黍又玩起 Hadoop,HDFS,MapReduce,Common,Spark,Mahout,HBase,NoSQL,Cassandra,GFS, MapReduce, BigTable,Hive,Pig,python……這些蛇精病和大怪獸了。我不認識它們,還有什么妖怪沒記進來的,請各位繼續(xù)在評論里補充。
可各位大神能不能把這些混亂的技術(shù)妖詞(對不起,正是因為不懂,所以很亂),做一個生態(tài)的比喻?比成,一棵樹?一個城市?一個人的循環(huán)系統(tǒng)?隨便你比……總之讓我們這些技術(shù)白癡也能搞明白,它們之間是什么關(guān)系,誰是干什么的?
我暫且就按照一個由遠及近的順序,按照時間的早晚從大數(shù)據(jù)出現(xiàn)之前的時代講到現(xiàn)在。暫時按一個城市來比喻吧,反正Landscape的意思也大概是”風(fēng)景“的意思。
早在大數(shù)據(jù)概念出現(xiàn)以前就存在了各種各樣的關(guān)于數(shù)學(xué)、統(tǒng)計學(xué)、算法、編程語言的研究、討論和實踐。這個時代,算法以及各種數(shù)學(xué)知識作為建筑的原料(比如鋼筋、磚塊),編程語言作為粘合劑(比如水泥)構(gòu)成了一座座小房子(比如一個應(yīng)用程序),形成了一小片一小片的村莊(比如一臺服務(wù)器)。這個時代村與村之間還沒有高速公路(GFS, HDFS, Flume, Kafka等),只有一條泥濘不好走的土路(比如RPC),經(jīng)濟模式也是小作坊式的經(jīng)濟。一開始互聯(lián)網(wǎng)并不發(fā)達,網(wǎng)速也不快,這種老土的方式完全應(yīng)付得來,可是隨著社交網(wǎng)絡(luò)和智能手機的興起,改變了這一切。網(wǎng)站流量成百上千倍的提高,數(shù)據(jù)變得更加多樣化,計算機硬件性能無法按照摩爾定律穩(wěn)定的提升,小村莊,小作坊生產(chǎn)的模式注定受到限制。人們需要更強大的模式...
起開始,人們以為只要有一個強大的中央數(shù)據(jù)庫,也就是在所有的村莊之間建一座吞吐量巨大,并且兼容并蓄(非關(guān)系型,NoSQL)的倉庫,用來中轉(zhuǎn)每個村莊生產(chǎn)的大量異質(zhì)貨物就能夠拉動經(jīng)濟的增長??墒菦]過多久,人們就意識到這是一個too young to simple的想法,因為這個倉庫的大小也總是有上限的。
之后MapReduce的概念最早由 google提出,用來解決大規(guī)模集群協(xié)同運算的問題,既然一臺計算機性能有限,何不將他們聯(lián)合起來?其野心勃勃,希望為每個村莊都建立一條”村村通“公路,也就是GFS了,就是Google分布式文件系統(tǒng)的意思,將不同服務(wù)器的硬盤連接起來,在外面看起來就好像一塊巨大的硬盤。然后構(gòu)建與其上的 MapReduce就是一座工廠調(diào)度每個村莊的勞動力和物資,讓這些村莊作為一個經(jīng)濟體運轉(zhuǎn)起來。居民變得富裕起來了。
不過,富裕起來的只有”谷歌鎮(zhèn)“,世界的其他村鎮(zhèn)仍然過著原始的生活。這個時候雅虎和Apache的一幫人本著獨樂樂不如眾樂樂的精神,仿造google的思想,創(chuàng)建了 HDFS(Hadoop 分布式文件系統(tǒng),對應(yīng)GFS)、Hadoop(對應(yīng)google的MapReduce),并公開了全部的藍圖,供全世界免費使用。這樣整個世界到處都建立起來了工廠,人們變得富裕起來了。這個時代,Hadoop叫做大數(shù)據(jù)基礎(chǔ)設(shè)施。
俗話說:飽暖思淫欲,工廠的領(lǐng)導(dǎo)不滿足于村鎮(zhèn)工廠的粗放型生產(chǎn),也不再想雇用那么多的勞動力,所以Mahout、HBase、Hive、Pig應(yīng)運而生,他們都是數(shù)控機床,加工中心,只需要幾名操作手就能夠讓整個工廠運轉(zhuǎn)起來,自此人們安居樂業(yè),豐衣足食。
當(dāng)然,少數(shù)更有野心的資本家,不滿足于現(xiàn)在的生產(chǎn)力,為了追求更高的利潤(這是資本主義的本質(zhì)),開發(fā)了效率更高的系統(tǒng)Spark,可以10倍于Hadoop的速度生產(chǎn)產(chǎn)品,新的時代才剛剛拉開序幕...