2016-02-08 60 views
38

我正在瀏覽Apache的帖子,發現了一個名爲Beam的新術語。任何人都可以解釋Apache Beam究竟是什麼? 我試圖谷歌,但無法得到明確的答案。什麼是Apache Beam?

+3

源在這裏閱讀:https://wiki.apache.org/incubator/BeamProposal – Jens

+3

最接近的事吧是Spark(批處理和流式處理)。這裏是Apache Beam(之前稱爲Google DataFlow)和Spark處理之間的一個很好的比較https://cloud.google.com/dataflow/blog/dataflow-beam-and-spark-comparison – Joel

回答

49

Apache Beam是一個開源的統一模型,用於定義和執行批處理和流式數據並行處理流水線,以及一組特定於語言的SDK,用於構建管道和運行時特定的Runners以執行它們。

歷史:背後束模式從衆多的谷歌內部的數據處理項目,包括MapReduceFlumeJava,並且進化Millwheel。該模型最初被稱爲「Dataflow Model」,並首次實施爲Google Cloud Dataflow - 包括用於編寫管道的Java SDK on GitHub以及用於在Google雲平臺上執行它們的完全託管服務。社區中的其他人開始編寫擴展,其中包括Spark RunnerFlink RunnerScala SDK。 2016年1月,Google和一些合作伙伴以Apache Beam(統一批+ strEAM處理)的名義將數據流編程模型和SDK部分作爲Apache孵化器Proposal提交。阿帕奇梁graduated從孵化十二月2016

學習的梁模型的其他資源:

+0

嗨, 我正在關注這個問題https://issues.apache.org/jira/browse/ZEPPELIN-682已被GSOC 2016採納。 您能否給我一些資源來熟悉Apache Beam? 謝謝 – Minudika

+0

@Minudika Apache Beam Java SDK可能在2016年3月 - 5月之前不可用,Python SDK在2016年夏季之前不可用。您應該從這裏開始:http://mail-archives.apache.org/mod_mbox/incubator-beam -dev/201602.mbox/%[email protected].com%3E –

15

Apache Beam(Batch + strEAM)是用於批量處理和流式數據處理的模型和API集合。它在2016年通過Apache開放源代碼(通過Cloudera和PayPal)通過Apache孵化器項目。

Dataflow/Beam & Spark: A Programming Model Comparison - Cloud Dataflow頁面對比與Apache Spark梁API,它已經獲得巨大成功的在帶來現代,靈活的API和兩個批次設置的優化技術和流式傳輸到Hadoop的世界和超越。

梁試圖採取所有經由模型的工序進一步,可以很容易描述的各個方面亂序處理該組合料和流處理時經常是一個問題,如在即編程型號比較

特別是,從比較引用,數據流模型旨在解決,典雅,並以一種更加模塊化,堅固耐用,易於維護:

...四個關鍵問題所有數據處理從業人員必須在構建管線時嘗試回答:

  • 計算什麼結果?總和,連接,直方圖,機器學習模型?
  • 在事件時間結果計算?每個事件最初發生的時間是否影響結果?結果是否在固定窗口,會話或單個全局窗口中彙總?
  • 在處理時間結果物化?在系統內觀察每個事件的時間是否會影響結果?結果何時發出?據推測,隨着數據的發展?當數據遲到,結果必須修改?這些的一些組合?
  • 結果的優化如何實現?如果額外的數據到達並且結果發生變化,它們是獨立的還是獨立的,它們是否互相建立在一起?

中梁描述的管道可以依次在星火,弗林克,谷歌的數據流提供在雲中,和其他「運行時」在內的「直接」本地計算機選項來運行。

該體系結構支持各種語言。 Java SDK現在可用。數據流的Python SDK即將發佈,和其他人設想斯卡拉等

看到Mirror of Apache Beam