Apache Beam是 Apache 軟體基金會於2017年1 月 10 日對外宣布的開源平台。
Beam 為創建複雜數據平行處理管道,提供了一個可移動(兼容性好)的 API 層。這層 API 的核心概念基於 Beam 模型(以前被稱為 Dataflow 模型),並在每個 Beam 引擎上不同程度得執行。
基本介紹
- 外文名:Apache Beam
- 發布:Apache 軟體基金會
背景,特點,解決方案,
背景
2016 年 2 月份,谷歌及其合作夥伴向 Apache 捐贈了一大批代碼,創立了孵化中的 Beam 項目( 最初叫 Apache Dataflow)。這些代碼中的大部分來自於谷歌 Cloud Dataflow SDK——開發者用來寫流處理和批處理管道(pipelines)的庫,可在任何支持的執行引擎上運行。當時,支持的主要引擎是谷歌 Cloud Dataflow,附帶對 Apache Spark 和 開發中的 Apache Flink 支持。如今,它正式開放之時,已經有五個官方支持的引擎。除去已經提到的三個,還包括 Beam 模型和 Apache Apex。
特點
- 統一了數據批處理(batch)和流處理(stream)編程範式,
- 能在任何執行引擎上運行。
它不僅為模型設計、更為執行一系列數據導向的工作流提供了統一的模型。這些工作流包括數據處理、吸收和整合。
解決方案
大數據處理領域的一大問題是:開發者經常要用到很多不同的技術、框架、API、開發語言和 SDK。取決於需要完成的是什麼任務,以及在什麼情況下進行,開發者很可能會用 MapReduce 進行批處理,用 Apache Spark SQL 進行互動請求( interactive queries),用 Apache Flink 實時流處理,還有可能用到基於雲端的機器學習框架。
近兩年開啟的開源大潮,為大數據開發者提供了十分富餘的工具。但這同時也增加了開發者選擇合適的工具的難度,尤其對於新入行的開發者來說。這很可能拖慢、甚至阻礙開源工具的發展:把各種開源框架、工具、庫、平台人工整合到一起所需工作之複雜,是大數據開發者常有的抱怨之一,也是他們支持專有大數據平台的首要原因。