隨著云計(jì)算和大數(shù)據(jù)的普及,越來(lái)越多的IT公司選擇將自己的大數(shù)據(jù)解決方案部署在云上面。云計(jì)算和大數(shù)據(jù)的結(jié)合帶來(lái)了什么便利呢?一個(gè)典型的大數(shù)據(jù)云又是如何設(shè)計(jì)和部署的呢?
下面我們以Google Cloud作為例子,講解在工業(yè)界里邊是如何實(shí)際應(yīng)用云。
Google Cloud
Google作為分布式系統(tǒng)和大數(shù)據(jù)的領(lǐng)導(dǎo)者,開(kāi)發(fā)了眾多跨時(shí)代的產(chǎn)品。幾乎每一個(gè)Google的產(chǎn)品,寫(xiě)出一篇paper就可以創(chuàng)造一個(gè)開(kāi)源社區(qū)的。
比如MapReduce發(fā)布之后,開(kāi)源社區(qū)根據(jù)Google的一篇論文開(kāi)發(fā)出的Hadoop,BigTable發(fā)布之后,開(kāi)源社區(qū)又進(jìn)一步開(kāi)發(fā)出Hbase等等。可以說(shuō)沒(méi)有Google的創(chuàng)新,就沒(méi)有現(xiàn)在開(kāi)源社區(qū)的繁榮。
而Google又把自家的產(chǎn)品,都放在Google Cloud上面,形成了豐富多彩的產(chǎn)品線,吸引了非常多的大大小小的公司如Snapchat等來(lái)使用。
Google App Engine (GAE)
我們都知道Web項(xiàng)目都需要大量的Web Service以及為之服務(wù)的運(yùn)維系統(tǒng)。Google在云計(jì)算領(lǐng)域首次嘗試的就是Google App Engine (GAE),相對(duì)比當(dāng)時(shí)的Amazon EC2,GAE只需開(kāi)發(fā)者上傳軟件代碼,其他部署將由Google完成。
用戶只需要熟悉后端語(yǔ)言開(kāi)發(fā)即部署大規(guī)模的集群。Google今年更是推出了GAE Flex,可以幫助用戶實(shí)現(xiàn)auto-scaling,用戶不再需要自己部署負(fù)載均衡的服務(wù)了。大部分中小企業(yè)的網(wǎng)站幾乎都可以無(wú)縫銜接到GAE上。
BigTable
BigTable的底層是注明的Google File System (GFS),他實(shí)現(xiàn)了數(shù)據(jù)中心級(jí)別的可靠的分布式存儲(chǔ)。
也是最早的NoSQL數(shù)據(jù)庫(kù)的一種。各種網(wǎng)站如果有需要永久存儲(chǔ)的數(shù)據(jù),一般都可以存放在BigTable里邊,Google Cloud會(huì)自動(dòng)幫你做replication,分布在不同的服務(wù)器節(jié)點(diǎn)里邊,這樣實(shí)現(xiàn)了可靠的分布式存儲(chǔ)。
Dataflow
Dataflow的底層實(shí)現(xiàn)利用了大名鼎鼎的MapReduce的升級(jí)版Flume。
Dataflow特別方便進(jìn)行大量的批處理,舉個(gè)例子來(lái)說(shuō),比如要把所有的用戶數(shù)據(jù)里邊的格式都升級(jí)一遍,用GAE或者其他service是很難實(shí)現(xiàn)的。
Dataflow也提供了特別多的接口,諸如BigQuery, Datastore, BigTable等等也是為了方便各種批處理。最近Google還提供了streaming(流服務(wù))版本的Dataflow,可以實(shí)現(xiàn)持續(xù)不斷的批處理。
BigQuery
BigQuery相當(dāng)于是Cloud version的SQL,可以方便使用各種復(fù)雜的查詢語(yǔ)言查找數(shù)據(jù)。這個(gè)尤其適合數(shù)據(jù)分析師進(jìn)行各種數(shù)據(jù)分析,幾乎各種SQL的語(yǔ)法都是支持的。
但是BigQuery在scaling上并不如BigTable,并不是面向用戶的,所以并不適合直接用來(lái)存儲(chǔ)用戶數(shù)據(jù)。只適合做一些離線分析,數(shù)據(jù)來(lái)源很多都是Dataflow從BigTable里邊dump出來(lái)的一些拷貝。
其他服務(wù)
Google Cloud還有非常多的其他服務(wù),諸如支持消息隊(duì)列處理的Pubsub,支持緩存的Memchace,支持Monitoring的Stackdriver,等等完整的構(gòu)成了一個(gè)企業(yè)數(shù)據(jù)云所必須的各種服務(wù),可以滿足大到Snapchat級(jí)別,小到各種startup的不同業(yè)務(wù)需求。