Apache Beam 在2016年1月發(fā)布第一個版本,,由 Google 捐獻(xiàn)給開源社區(qū),,凝聚著 Google 研發(fā)大數(shù)據(jù)基礎(chǔ)設(shè)施的多年經(jīng)驗。 Beam 來源于 Batch(批處理)和 strEAM (流處理)這兩個詞,,意在提供一個統(tǒng)一的編程模型,,同時支持批處理和流處理。 Apache Beam 是: 統(tǒng)一的:使用一個編程模型支持批處理和流處理用例,。 可移植的:可以在多種執(zhí)行引擎上執(zhí)行作業(yè),,包括 Apache Apex、Apache Flink,、Apache Spark 和 Google Cloud Dataflow 等,。可擴(kuò)展的:支持編寫和共享新的 SDK,、IO connector 和 transformation 庫,。 大數(shù)據(jù)框架有很多:Hadoop, Spark等;對于流數(shù)據(jù)的處理存在很多技術(shù):簡單的事件處理器,,流處理器和復(fù)雜的事件處理器,。在開源社區(qū)中存在很多選擇,包括Flume,,NiFi,,Apex,Kafka流,,Spark流,,Storm,F(xiàn)link,,Samza,,Ignite和Beam。 各個平臺之間也是互不兼容的,,一個平臺上寫的程序很難移植到另外一個平臺,,這對開發(fā)者來說開發(fā)成本比較高。這就催生了Google的新項目Apache Beam,,是Google想對大數(shù)據(jù)開源生態(tài)進(jìn)行的一次大一統(tǒng),。 Google是最早實踐大數(shù)據(jù)的公司,目前大數(shù)據(jù)的生態(tài)很大一部分都要歸功于Google最早的幾篇論文,,這幾篇論文造就了目前以Hadoop為開端的大數(shù)據(jù)繁榮生態(tài),。Apache Beam被認(rèn)為是繼MapReduce,,GFS和BigQuery等之后,Google在大數(shù)據(jù)處理領(lǐng)域?qū)﹂_源社區(qū)的又一個非常大的貢獻(xiàn),。并且由Google開源后,,得到了Spark, Flink等社區(qū)的大力支持。 Apache Beam的發(fā)展歷程: Beam本身不是一個流式處理平臺,,而是一個統(tǒng)一的編程框架,。“Beam可用于各種流式或批處理上,,包括ETL,,流分析和聚合計算”。解決這個問題的思路包括兩個部分:第一,,需要一個編程范式,,能夠統(tǒng)一、規(guī)范分布式數(shù)據(jù)處理的需求,。第二,,生成的分布式數(shù)據(jù)處理任務(wù)應(yīng)該能夠在各個分布式執(zhí)行引擎上執(zhí)行,用戶可以自由切換分布式數(shù)據(jù)處理任務(wù)的執(zhí)行引擎與執(zhí)行環(huán)境,。 在Beam中,,主要包含兩個關(guān)鍵的部分(以下部分引用了解讀2016之大數(shù)據(jù)篇): Beam SDK Beam SDK提供一個統(tǒng)一的編程接口給到上層應(yīng)用的開發(fā)者,開發(fā)者不需要了解底層的具體的大數(shù)據(jù)平臺的開發(fā)接口是什么,,直接通過Beam SDK的接口,,就可以開發(fā)數(shù)據(jù)處理的加工流程。Beam SDK會有不同的語言的實現(xiàn),,目前提供Java,,python的SDK正在開發(fā)過程中,相信未來會有更的的不同的語言的SDK會發(fā)布出來,。 Beam Pipeline Runner Beam Pipeline Runner是將用戶開發(fā)的pipeline翻譯成底層的數(shù)據(jù)平臺支持的運行時環(huán)境的一層,。針對不同的大數(shù)據(jù)平臺,,會有不同的Runner,。目前Flink, Spark, Apex以及google的 Cloud DataFlow都有支持Beam的Runner。 “Beam已經(jīng)足夠的成熟和穩(wěn)定,,Spotify公司就在用Beam構(gòu)造自己的大數(shù)據(jù)pipeline,。” Beam的架構(gòu)圖: Apache Beam的代碼大部分來自于谷歌 Cloud Dataflow SDK,,Google內(nèi)部已經(jīng)用Dataflow替換掉了MapReduce,,“No one at Google uses MapReduce anymore - Cloud Dataflow explained for dummies ”: 另外我們可以看下Google內(nèi)部怎么使用Apache Beam的: 參考資料:https://www./2016/04/22/apache-beam-emerges-ambitious-goal-unify-big-data-development/ QCon北京2017將于4月16日~18日在北京·國家會議中心舉行,精心設(shè)計了互聯(lián)網(wǎng)廣告系統(tǒng)實踐,、大數(shù)據(jù)實時計算與流處理和金融科技轉(zhuǎn)型與未來等30來個專題,,將邀請來自Google,、Facebook、阿里巴巴,、騰訊,、百度、美團(tuán)點評,、愛奇藝等典型互聯(lián)網(wǎng)公司的技術(shù)專家,,分享技術(shù)領(lǐng)域最新成果。 |
|