谷歌昨日宣布,Apache Beam 在经过近一年的孵化后终于从 Apache 孵化器毕业,现在已经是一个成熟的顶级 Apache 项目。这一成就直接反应了社区为把 Beam 转变为开放、专业、社区驱动的项目所付出的努力。
11个月前,谷歌以及一些合作伙伴向 Apachee 软件基金会捐赠了大量代码,从而得以开始孵化 Beam 项目。这些代码的大部分来自谷歌的 Cloud Dataflow SDK,是开发者用来编写流处理(streaming)和批处理管道(batch pinelines)的库,可以在任何支持的执行引擎上运行。
Spark 和开发中的 Apache Flink 的支持。到今天它已经有5个官方支持的引擎,除了上述三个,还有 Beam Model 和 Apache Apex。虽然 Apache Beam 的创建背后有许多动机,但核心的动机是希望在这个数据处理的强大模型周围建立起一个开放、繁荣的社区和生态环境,毕竟这是谷歌的许多研究员花了许多年的经历不断完善的模型。但是把这样一个拥有十多年工程量的项目从一个公司内部提出来,开放给大众,这绝非易事。
下面是在成熟度模型评估中 Apache Beam 的一些统计数据:
这里引用来自 Apache 孵化器副总裁 Ted Dunning 的一段评价:
“在我的日常工作,以及作为在 Apache 的工作的一部分,我对 Google 真正理解如何利用 Apache 这样的开源社区的方式非常感佩。Apache Beam 项目就是这方面的一个很好的例子,是有关如何建立一个社区的非常好的例子。”
谷歌工程师、Apache Beam PMC Tyler Akidau 表示,谷歌一如既往地保持它对 Apache Beam 的承诺,即所有参与者(不管是否谷歌内部开发者)完成了一个非常好的开源项目,真正实现了“open”这个词的最好含义。
Akidau 在官方博文中写道,这就是开源软件令人感佩的原因:“人们聚在一起创建每个人可用的伟大、实用的系统,因为这项工作令人兴奋、有用而且与自身息息相关。这是我对创建 Apache Beam 感到非常兴奋的主要原因,是我为自己在这段旅程中做出了一些小小的贡献感到自豪的原因,以及我对社区为实现这个项目投入的所有工作感到非常感激的原因。”
Apache Beam 的毕业和开源,意味着谷歌已经准备好继续推进流处理和批处理中最先进的技术。谷歌已经准备好将可移植性带到可编程数据处理,这大部分与SQL为声明式数据分析的运作方式一致。研究人员也表示,他们还准备好恢复以前由于强制“孵化”名字对象所消耗的大量文本空间。
对谷歌的战略意义
新智元此前曾报道,Angel是腾讯大数据部门发布的第三代计算平台,使用Java和Scala语言开发,面向机器学习的高性能分布式计算框架,由腾讯与中国香港科技大学、北京大学联合研发。它采用参数服务器架构,解决了上一代框架的扩展性问题,支持数据并行及模型并行的计算模式,能支持十亿级别维度的模型训练。
据介绍,Angel 还采用了多种业界最新技术和腾讯自主研发技术,如SSP(Stale synchronous Parallel)、异步分布式SGD、多线程参数共享模式HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使Angel性能大幅提高,达到常见开源系统Spark的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。
在系统易用性上,Angel 提供丰富的机器学习算法库及高度抽象的编程接口、数据计算和模型划分的自动方案及参数自适应配置,同时,用户能像使用MR、Spark一样在Angel上编程, 还建设了拖拽式的一体化的开发运营门户,屏蔽底层系统细节,降低用户使用门槛。另外,Angel还支持深度学习,它支持Caffe、TensorFlow和Torch等业界主流的深度学习框架,为其提供计算加速。
Google是一个企业,因此,毫不奇怪,Apache Beam 移动有一个商业动机。这种动机主要是,期望在 Cloud Dataflow上运行尽可能多的 Apache Beam 管道。打开平台有许多好处:
不仅谷歌从中受益 ,任何跟 Apache Beam 相关的人都能受益。如果存在用于构建数据处理流水线的便携式抽象层,则新流程现在变得更容易实现,并且在提供更好的性能,可靠性,操作管理容易性等的技术创新上具有竞争力。
换句话说,消除API锁定使得执行引擎市场更自由,引起更多的竞争,并最终行业将因此获益。
编译来源: