Apache Beam的前世今生
Apache Beam前身是Google Dataflow SDK,DataFlow是谷歌的提供大数据计算平台。在DataFlow之前,谷歌的批处理和流处理(流计算,实时处理)使用了不同系统,流处理有MillWheel、FlumeJava等,批处理有MapRedude,不同的平台使用了不同的Api,无疑提升了开发的难度,所以DataFlow横空出世,提出了一套统一批处理和流处理的模型。
Google在2016年2月贡献给Apache基金会的Apache孵化项目,2017年2月从孵化器毕业,成为Apache Beam的顶级项目。
图1. Apache Beam的进化历程
Apache Beam是什么
Apache Beam是大数据的编程模型,定义了数据处理的编程范式和接口,它并不涉及具体的执行引擎的实现,但是,基于Beam开发的数据处理程序可以执行在任意的分布式计算引擎上,目前Dataflow、Spark、Flink、Apex提供了对批处理和流处理的支持,GearPump提供了流处理的支持,Storm的支持也在开发中。
综上所属,Apache Beam的目标是提供统一批处理和流处理的编程范式,为无限、乱序、互联网级别的数据集处理提供简单灵活、功能丰富以及表达能力十分强大的SDK,目前支持Java和Python两种SDK。
如果类比一下的话,大数据领域的Apace Beam相当于Java,提供了跨语言、跨平台的大数据开发标准。