美国时间 1 月 10 日,apache 软件基金会对外宣布,万众期待的 apache beam 在经历了近一年的孵化之后终于毕业。这一顶级 apache 开源项目终于成熟。
这是大数据处理领域的又一大里程碑事件——仅仅在上个月,腾讯宣布将在 2017 年一季度开源其大数据计算平台 angel 。现在看来,生不逢时的 angel 可能迎来了它最大的对手。至此,谷歌终于也完成了对其云端大数据平台 cloud dataflow 开源的承诺。
apache beam 有两大特点:
统一了数据批处理(batch)和流处理(stream)编程范式,
能在任何执行引擎上运行。
它不仅为模型设计、更为执行一系列数据导向的工作流提供了统一的模型。这些工作流包括数据处理、吸收和整合。
它针对什么问题提供了凯发k8官网登录vip的解决方案:
大数据处理领域的一大问题是:开发者经常要用到很多不同的技术、框架、api、开发语言和 sdk。雷锋网(公众号:雷锋网)获知,取决于需要完成的是什么任务,以及在什么情况下进行,开发者很可能会用 mapreduce 进行批处理,用 apache spark sql 进行交互请求( interactive queries),用 apache flink 实时流处理,还有可能用到基于云端的机器学习框架。
近两年开启的开源大潮,为大数据开发者提供了十分富余的工具。但这同时也增加了开发者选择合适的工具的难度,尤其对于新入行的开发者来说。这很可能拖慢、甚至阻碍开源工具的发展:把各种开源框架、工具、库、平台人工整合到一起所需工作之复杂,是大数据开发者常有的抱怨之一,也是他们支持专有大数据平台的首要原因。
谷歌开源 cloud dataflow 背后的算盘是:
apache beam 的用户基础越大,就会有更多人用谷歌云平台运它。相应地,他们会转化为谷歌云服务的客户。腾讯开放 angel 的动机与之类似。
背景
2016 年 2 月份,谷歌及其凯发k8官网登录vip的合作伙伴向 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 孵化器项目时,我们脑海里有一个目标:为世界提供一个易于使用、但是很强大的数据并行处理模型,支持流处理和批处理,兼容多个运行平台。”
前景
对于 apache beam 的前景,tyler akidau 说道:
“一般来讲,在孵化器毕业只是一个开源项目生命周期中的一个里程碑——未来还有很多在等着我们。但成为顶级项目是一个信号:apache beam 的背后已经有为迎接它的黄金时间准备就绪的开发者社群。
这意味着,我们已经准备好向前推进流处理和批处理的技术边界,并把可移动性(兼容多平台)带到可编程数据处理。 这很像 sql 在陈述性数据(declarative data)分析领域起到的作用。相比不开源、把相关技术禁锢在谷歌高墙之内,我们希望借此创造出前者所无法实现的东西。”
另外,tyler akidau 信心十足地强调:“流处理和批处理的未来在于 apache beam,而执行引擎的选择权在于用户。”
最后,我们来看看谷歌在去年早些时候发布的 “apache beam 技能矩阵”,用它可以看出每一个兼容引擎执行 beam 模型的效果。换句话说,它展示了 apache beam 管道在不同平台执行的兼容能力。
黄色表:都有什么被计算?蓝表:事件时间的那一刻?绿表:处理时间的哪一刻?红表:各项改进之间有什么关系?
via ,,