1
| 本文作者: 三川 | 2017-01-11 19:34 |

美國時間 1 月 10 日,Apache 軟件基金會對外宣布,萬眾期待的 Apache Beam 在經歷了近一年的孵化之后終于畢業。這一頂級 Apache 開源項目終于成熟。
這是大數據處理領域的又一大里程碑事件——僅僅在上個月,騰訊宣布將在 2017 年一季度開源其大數據計算平臺 Angel ?,F在看來,生不逢時的 Angel 可能迎來了它最大的對手。至此,谷歌終于也完成了對其云端大數據平臺 Cloud Dataflow 開源的承諾。
統一了數據批處理(batch)和流處理(stream)編程范式,
能在任何執行引擎上運行。
它不僅為模型設計、更為執行一系列數據導向的工作流提供了統一的模型。這些工作流包括數據處理、吸收和整合。
大數據處理領域的一大問題是:開發者經常要用到很多不同的技術、框架、API、開發語言和 SDK。雷鋒網獲知,取決于需要完成的是什么任務,以及在什么情況下進行,開發者很可能會用 MapReduce 進行批處理,用 Apache Spark SQL 進行交互請求( interactive queries),用 Apache Flink 實時流處理,還有可能用到基于云端的機器學習框架。
近兩年開啟的開源大潮,為大數據開發者提供了十分富余的工具。但這同時也增加了開發者選擇合適的工具的難度,尤其對于新入行的開發者來說。這很可能拖慢、甚至阻礙開源工具的發展:把各種開源框架、工具、庫、平臺人工整合到一起所需工作之復雜,是大數據開發者常有的抱怨之一,也是他們支持專有大數據平臺的首要原因。
Apache Beam 的用戶基礎越大,就會有更多人用谷歌云平臺運它。相應地,他們會轉化為谷歌云服務的客戶。騰訊開放 Angel 的動機與之類似。

2016 年 2 月份,谷歌及其合作伙伴向 Apache 捐贈了一大批代碼,創立了孵化中的 Beam 項目( 最初叫 Apache Dataflow)。這些代碼中的大部分來自于谷歌 Cloud Dataflow SDK——開發者用來寫流處理和批處理管道(pipelines)的庫,可在任何支持的執行引擎上運行。當時,支持的主要引擎是谷歌 Cloud Dataflow,附帶對 Apache Spark 和 開發中的 Apache Flink 支持。如今,它正式開放之時,已經有五個官方支持的引擎。除去已經提到的三個,還包括 Beam 模型和 Apache Apex。
雷鋒網獲知,Apache Beam 的官方解釋是:“Beam 為創建復雜數據平行處理管道,提供了一個可移動(兼容性好)的 API 層。這層 API 的核心概念基于 Beam 模型(以前被稱為 Dataflow 模型),并在每個 Beam 引擎上不同程度得執行。”
谷歌工程師、Apache Beam 項目的核心人物 Tyler Akidau 表示:
“當我們(谷歌和幾家公司)決定把 Cloud Dataflow SDK 和相關引擎加入 Apache Beam 孵化器項目時,我們腦海里有一個目標:為世界提供一個易于使用、但是很強大的數據并行處理模型,支持流處理和批處理,兼容多個運行平臺?!?/p>

對于 Apache Beam 的前景,Tyler Akidau 說道:
“一般來講,在孵化器畢業只是一個開源項目生命周期中的一個里程碑——未來還有很多在等著我們。但成為頂級項目是一個信號:Apache Beam 的背后已經有為迎接它的黃金時間準備就緒的開發者社群。
這意味著,我們已經準備好向前推進流處理和批處理的技術邊界,并把可移動性(兼容多平臺)帶到可編程數據處理。 這很像 SQL 在陳述性數據(declarative data)分析領域起到的作用。相比不開源、把相關技術禁錮在谷歌高墻之內,我們希望借此創造出前者所無法實現的東西?!?/p>
另外,Tyler Akidau 信心十足地強調:“流處理和批處理的未來在于 Apache Beam,而執行引擎的選擇權在于用戶。”
最后,我們來看看谷歌在去年早些時候發布的 “Apache Beam 技能矩陣”,用它可以看出每一個兼容引擎執行 Beam 模型的效果。換句話說,它展示了 Apache Beam 管道在不同平臺執行的兼容能力。

黃色表:都有什么被計算?藍表:事件時間的那一刻?綠表:處理時間的哪一刻?紅表:各項改進之間有什么關系?
via googleblog,GCP,datanami 雷鋒網
相關文章:
谷歌、微軟、OpenAI 等巨頭的七大機器學習開源項目 看這篇就夠了
盤點四大民間機器學習開源框架:Theano、Caffe、Torch 和 SciKit-learn
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。