【干貨】Google Cloud Dataflow:從原理到應(yīng)用

來源: CSDN
作者:格靈深瞳
時間:2020-09-04
19307
Dataflow這個概念第一次與開發(fā)者見面是在2014年6月的Google IO大會上,同年12月,Google首先公布了Dataflow的Java SDK及SDK的源代碼。2015年3月初,Dataflow正式上線,作為一個云服務(wù)產(chǎn)品出現(xiàn)在Google Cloud產(chǎn)品線中并提供Alpha版本的試用申請。

本次Talk的題目是Google Cloud Dataflow:from concepts to practice。

Dataflow這個概念第一次與開發(fā)者見面是在2014年6月的Google I/O大會上,同年12月,Google首先公布了Dataflow的Java SDK及SDK的源代碼。2015年3月初,Dataflow正式上線,作為一個云服務(wù)產(chǎn)品出現(xiàn)在Google Cloud產(chǎn)品線中并提供Alpha版本的試用申請。

ia_4600000002.JPEG

在傳統(tǒng)的MapReduce大數(shù)據(jù)并行處理中,單一的MapReduce節(jié)點無法滿足復(fù)雜的業(yè)務(wù)需求,因此多數(shù)的大數(shù)據(jù)處理是以MapReduce多節(jié)點管道方式搭建的。這需要開發(fā)者編寫額外的代碼將多個MapReduce節(jié)點連接起來并管理各節(jié)點的狀態(tài)和相互之間的數(shù)據(jù)傳輸,同時還要維護一個很大的服務(wù)器集群;另外,大數(shù)據(jù)的實時計算也給MapReduce帶來了極大的挑戰(zhàn)。這是Google開發(fā)Dataflow的初衷。作為Google Cloud的一個產(chǎn)品,Dataflow可以與App Engine、Compute Engine,Google Storage、Google Datastore、Google Cloud SQL云存儲服務(wù)結(jié)合,快速搭建一個較為完整的實時大數(shù)據(jù)并行處理系統(tǒng)。Dataflow簡化了系統(tǒng)開發(fā)的流程,開發(fā)者使用SDK在本地開發(fā)、測試和調(diào)試并隨時將代碼提交到云服務(wù)上測試和運行。Dataflow會自動對用戶的流處理系統(tǒng)進行優(yōu)化并分發(fā)到多個計算節(jié)點上并發(fā)執(zhí)行。

用戶開發(fā)的大數(shù)據(jù)系統(tǒng)可從Google提供的多種存儲服務(wù)和Pub/Sub服務(wù)中讀取數(shù)據(jù)進行處理后再寫入到指定的存儲服務(wù)或Pub/Sub服務(wù)中。由于Google的存儲服務(wù)采用了成熟的業(yè)界標(biāo)準(zhǔn),因此用戶同樣可以將Hadoop、Spark等產(chǎn)品集成到Dataflow中。

ia_4600000003.JPEG

Dataflow底層依賴于兩個技術(shù):FlumeJava和MillWheel。與2003年的Map-Reduce、BigTable等概念類似,Google研究院于2010年和2013年分別發(fā)表的兩篇論文介紹FlumeJava和MillWheel,在此之前,這兩個項目在Google內(nèi)部均有一定程度的成功實踐。

在FlumeJava發(fā)布之后,有不少媒體稱其為下一代的MapReduce(個人認為這個評價過高)。FlumeJava是一個Java庫,提供了一個更簡單的大數(shù)據(jù)并行處理框架和工具,其底層的算法模型還是MapReduce。FlumeJava在更高的層面上對MapReduce管道進行數(shù)據(jù)和流程的抽象,同時提供了內(nèi)置的流程優(yōu)化策略。FlumeJava將數(shù)據(jù)模型抽象為PCollection<T>和PTable<K,V>兩個泛型數(shù)據(jù)結(jié)構(gòu),并在這兩個數(shù)據(jù)結(jié)構(gòu)上定義了parallelDo(),groupByKey(),combineValues()和flatten()四個操作原語,同時在這四個操作原語的基礎(chǔ)上定義了count(),join()和top()等常用操作。通過與傳統(tǒng)MapReduce、專家優(yōu)化的MapReduce作對比,F(xiàn)lumeJava在所需要的代碼行數(shù),方法個數(shù)和執(zhí)行時間上均優(yōu)于傳統(tǒng)MapReduce并同專家優(yōu)化的MapReduce系統(tǒng)不相上下。也就表明通過FlumeJava,普通開發(fā)者能在更短時間內(nèi)就開發(fā)出專家級的MapReduce系統(tǒng)。

Dataflow的另外一個底層技術(shù)是MillWheel,其提供了帶容錯機制的實時數(shù)據(jù)處理模型。從Google研究院發(fā)表的論文來看,MillWheel是一種模型和算法而沒有提供可編程框架,因此目前我們沒有機會了解其代碼層面的實現(xiàn)。從原理上講,MillWheel內(nèi)置容錯機制,采用低水位(low watermarks)機制避免因網(wǎng)絡(luò)延遲等因素導(dǎo)致的數(shù)據(jù)流順序不一致的問題。實時數(shù)據(jù)處理是近幾年的熱點,市面上已有的產(chǎn)品包括Storm,Spark Streaming,Yahoo S3,Samza等。與這四者的對比顯示MillWheel基本上是這幾種產(chǎn)品特性的整合。

了解了FlumeJava和MillWheel的基本概念和原理,我們就更容易理解Dataflow的運行機制和特性。Dataflow可以簡單的認為是二者的集成,但是我相信Google肯定花費了大量的精力來優(yōu)化二者以及與整個Google Cloud產(chǎn)品線的集成。

ia_4600000004.JPEG

上圖是Dataflow的一個示例代碼,開發(fā)了一個大家耳熟能詳?shù)腤ord Count應(yīng)用。通過代碼可以看出基于Dataflow編寫并發(fā)的大數(shù)據(jù)處理管道更容易也更簡單。通過Dataflow提供的SDK可以很方便的把改代碼提交到云服務(wù)上執(zhí)行,并通過Developer Console進行監(jiān)控和管理。

小結(jié):Google Dataflow是為了解決傳統(tǒng)MapReduce應(yīng)對復(fù)雜業(yè)務(wù)流程的困難并結(jié)合實時數(shù)據(jù)分析的需求而開發(fā)的云服務(wù),給開發(fā)者提供了一個快速開發(fā)、測試、debug和生產(chǎn)運行、監(jiān)控的SDK、工具及云服務(wù),其本身沒有創(chuàng)造性的理論或算法模型。由于是FlumeJava和MillWheel的集成,并可以調(diào)用Google Cloud提供的存儲和Pub/Sub服務(wù),因此可以在批處理和實時計算二者之間進行無縫地切換。目前的缺陷是版本還不穩(wěn)定;Google Cloud本身提供的服務(wù)還比較少;發(fā)布時間尚短,沒有一個較為成功的商業(yè)案例。但是,Google作為直接開啟大數(shù)據(jù)潮流的先驅(qū),其提供的大數(shù)據(jù)平臺還是值得我們?nèi)パ芯亢吞剿鞯摹?/span>

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_45932629/article/details/103315968

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于CSDN,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
新版GKE可管理最多6.5萬集群節(jié)點,超越AWS、Azure 10倍
新版GKE可管理最多6.5萬集群節(jié)點,超越AWS、Azure 10倍
Google Cloud公布最新Google Kubernetes Engine版本,號稱可支持最高達65,000個節(jié)點的服務(wù)器集群,以執(zhí)行超大型AI模型。
Google Cloud
云服務(wù)
云計算
2024-11-152024-11-15
Google Cloud細說AI變現(xiàn)途徑:用戶一年暴增10倍
Google Cloud細說AI變現(xiàn)途徑:用戶一年暴增10倍
Google云計算平臺(Google Cloud)首席執(zhí)行官Thomas Kurian在高盛舉行的會議上,說明了該公司究竟是通過哪些途徑將AI變現(xiàn)。
Google Cloud
谷歌云
云計算
2024-09-132024-09-13
云計算平臺GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問敏感數(shù)據(jù)
云計算平臺GCP的服務(wù)存在權(quán)限提升漏洞,未經(jīng)授權(quán)的攻擊者可借此訪問敏感數(shù)據(jù)
7月24日安全企業(yè)Tenable披露影響Google Cloud Platform(GCP)的權(quán)限提升漏洞ConfusedFunction,這項弱點發(fā)生在名為Cloud Functions的無服務(wù)器運算服務(wù),以及稱作Cloud Build的CICD渠道服務(wù)。
Google Cloud
谷歌云
云計算
2024-07-272024-07-27
Gemini為核心,Google云計算AI戰(zhàn)略聚焦云服務(wù)和生產(chǎn)力GAI
Gemini為核心,Google云計算AI戰(zhàn)略聚焦云服務(wù)和生產(chǎn)力GAI
過去一年,企業(yè)GAI應(yīng)用的風(fēng)潮席卷全球,成了三大公有云積極搶攻的新戰(zhàn)場,微軟靠著OpenAI助攻,去年在這場云計算GAI大戰(zhàn)中取得先機,而Google后來居上,靠著自家PaLM模型和GAI生產(chǎn)力工具來迎戰(zhàn),AWS則是到去年底年會上,對于企業(yè)GAI應(yīng)用布局才有比較完整的布局與披露。
Google Cloud
谷歌云
云計算
2024-05-042024-05-04
優(yōu)質(zhì)服務(wù)商推薦
更多