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