一個典型的大數據雲是如何設計和部署的呢?

大數據 雲計算 BigTable MapReduce 中國大數據 2017-07-16

隨著雲計算和大數據的普及,越來越多的IT公司選擇將自己的大數據解決方案部署在雲上面。雲計算和大數據的結合帶來了什麼便利呢?一個典型的大數據雲又是如何設計和部署的呢?

下面我們以Google Cloud作為例子,講解在工業界裡邊是如何實際應用雲。

Google Cloud

Google作為分佈式系統和大數據的領導者,開發了眾多跨時代的產品。幾乎每一個Google的產品,寫出一篇paper就可以創造一個開源社區的。

比如MapReduce發佈之後,開源社區根據Google的一篇論文開發出的Hadoop,BigTable發佈之後,開源社區又進一步開發出Hbase等等。可以說沒有Google的創新,就沒有現在開源社區的繁榮。

一個典型的大數據雲是如何設計和部署的呢?

而Google又把自家的產品,都放在Google Cloud上面,形成了豐富多彩的產品線,吸引了非常多的大大小小的公司如Snapchat等來使用。

Google App Engine (GAE)

我們都知道Web項目都需要大量的Web Service以及為之服務的運維繫統。Google在雲計算領域首次嘗試的就是Google App Engine (GAE),相對比當時的Amazon EC2,GAE只需開發者上傳軟件代碼,其他部署將由Google完成。

一個典型的大數據雲是如何設計和部署的呢?

用戶只需要熟悉後端語言開發即部署大規模的集群。Google今年更是推出了GAE Flex,可以幫助用戶實現auto-scaling,用戶不再需要自己部署負載均衡的服務了。大部分中小企業的網站幾乎都可以無縫銜接到GAE上。

BigTable

BigTable的底層是註明的Google File System (GFS),他實現了數據中心級別的可靠的分佈式存儲。

也是最早的NoSQL數據庫的一種。各種網站如果有需要永久存儲的數據,一般都可以存放在BigTable裡邊,Google Cloud會自動幫你做replication,分佈在不同的服務器節點裡邊,這樣實現了可靠的分佈式存儲。

Dataflow

Dataflow的底層實現利用了大名鼎鼎的MapReduce的升級版Flume。

Dataflow特別方便進行大量的批處理,舉個例子來說,比如要把所有的用戶數據裡邊的格式都升級一遍,用GAE或者其他service是很難實現的。

一個典型的大數據雲是如何設計和部署的呢?

Dataflow也提供了特別多的接口,諸如BigQuery, Datastore, BigTable等等也是為了方便各種批處理。最近Google還提供了streaming(流服務)版本的Dataflow,可以實現持續不斷的批處理。

BigQuery

BigQuery相當於是Cloud version的SQL,可以方便使用各種複雜的查詢語言查找數據。這個尤其適合數據分析師進行各種數據分析,幾乎各種SQL的語法都是支持的。

一個典型的大數據雲是如何設計和部署的呢?

但是BigQuery在scaling上並不如BigTable,並不是面向用戶的,所以並不適合直接用來存儲用戶數據。只適合做一些離線分析,數據來源很多都是Dataflow從BigTable裡邊dump出來的一些拷貝。

其他服務

Google Cloud還有非常多的其他服務,諸如支持消息隊列處理的Pubsub,支持緩存的Memchace,支持Monitoring的Stackdriver,等等完整的構成了一個企業數據雲所必須的各種服務,可以滿足大到Snapchat級別,小到各種startup的不同業務需求。

相關推薦

推薦中...