什么是 Apache Beam? [关闭]
Posted
技术标签:
【中文标题】什么是 Apache Beam? [关闭]【英文标题】:What is Apache Beam? [closed] 【发布时间】:2016-05-17 19:24:17 【问题描述】:我在浏览 Apache 的帖子时发现了一个名为 Beam 的新术语。谁能解释一下 Apache Beam 到底是什么? 我试图用谷歌搜索,但无法得到明确的答案。
【问题讨论】:
阅读此处:wiki.apache.org/incubator/BeamProposal 最接近它的是 Spark(批处理和流式处理)。这是 Apache Beam(以前称为 Google DataFlow)和 Spark 处理之间的一个很好的比较cloud.google.com/dataflow/blog/… 【参考方案1】:Apache Beam 是一个开源的统一模型,用于定义和执行批处理和流数据并行处理管道,以及一组用于构建管道的特定于语言的 SDK 和用于执行它们的特定于运行时的 Runner。
历史: Beam 背后的模型是从许多内部 Google 数据处理项目演变而来的,包括 MapReduce、FlumeJava 和 Millwheel。该模型最初被称为“Dataflow Model”,最初以Google Cloud Dataflow 的形式实现——包括用于编写管道的Java SDK on GitHub,以及用于在谷歌云平台上执行它们的完全托管服务。社区中的其他人开始编写扩展,包括 Spark Runner、Flink Runner 和 Scala SDK。 2016 年 1 月,Google 和一些合作伙伴提交了数据流编程模型和 SDK 部分作为 Apache 孵化器Proposal,名称为 Apache Beam(统一批处理 + 流处理)。 Apache Beam graduated 于 2016 年 12 月孵化。
学习 Beam 模型的其他资源:
Apache Beam website VLDB 2015 paper(使用原命名数据流模型) Streaming 101 和 Streaming 102 在 O'Reilly 的 Radar 网站上发帖 一束podcast on Software Engineering Radio【讨论】:
嗨,我正在关注这个问题issues.apache.org/jira/browse/ZEPPELIN-682,它已被推荐用于 GSOC 2016。你能给我一些资源来熟悉 Apache Beam 吗?谢谢 @Minudika Apache Beam Java SDK 可能在 2016 年 3 月至 5 月之前无法使用,Python SDK 可能在 2016 年夏季之前无法使用。您可能应该从那里开始:mail-archives.apache.org/mod_mbox/incubator-beam-dev/… “统一模型”是什么意思??【参考方案2】:Apache Beam (Batch + strEAM) 是用于批处理和流式数据处理的模型和 API 集。它于 2016 年由 Google(与 Cloudera 和 PayPal)通过 Apache 孵化器项目开源。
Dataflow/Beam & Spark: A Programming Model Comparison - Cloud Dataflow 页面将 Beam API 与 Apache Spark 进行了对比,后者在为 Hadoop 世界及其他领域带来现代、灵活的 API 和一组批处理和流式优化技术方面取得了巨大成功。
Beam 试图通过一个模型更进一步,该模型可以轻松描述乱序处理的各个方面,这在结合批处理和流处理时通常是一个问题,如编程模型比较中所述。
从比较中引用,Dataflow 模型旨在以更模块化、更健壮且更易于维护的方式优雅地解决问题:
...所有数据处理从业者在构建管道时必须尝试回答的四个关键问题:
计算出什么结果?求和、连接、直方图、机器学习模型? 结果在事件时间的哪里计算?每个事件最初发生的时间是否会影响结果?结果是聚合在固定窗口、会话还是单个全局窗口中? 在处理时间内何时实现结果?在系统内观察每个事件的时间是否会影响结果?什么时候发出结果?推测,随着数据的发展?当数据迟到并且必须修改结果时?这些的某种组合? 结果的细化如何关联?如果有额外的数据到达并且结果发生变化,它们是否独立且不同,它们是否相互依赖,等等?
Beam 中描述的管道又可以在 Spark、Flink、Google 的云端数据流产品和其他“运行时”上运行,包括“直接”本地机器选项。
该架构支持多种语言。 Java SDK 现在可用。一个 Dataflow Python SDK 即将发布,其他的预计将用于 Scala 等。
查看源代码Mirror of Apache Beam
【讨论】:
以上是关于什么是 Apache Beam? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何过滤坏和好的 json 事件,然后增加坏 json 记录的指标计数,并使用 java [关闭] 将这些记录存储在 apache Beam 中