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