下一代大数据处理平台Apache Beam成为Apache顶级项目

下一代大数据处理平台Apache Beam成为Apache顶级项目

iteblog 过往记忆大数据
下一代大数据处理平台Apache Beam成为Apache顶级项目
Apache软件基金会在2017年01月10正式宣布Apache Beam从孵化项目毕业,成为Apache的顶级项目

Apache Beam(原名Google DataFlow)是Google在2016年2月份贡献给Apache基金会的Apache孵化项目,被认为是继MapReduce,GFS和BigQuery等之后,Google在大数据处理领域对开源社区的又一个非常大的贡献。Apache Beam的主要目标是统一批处理和流处理的编程范式,为无限,乱序,web-scale的数据集处理提供简单灵活,功能丰富以及表达能力十分强大的SDK。

Beam仅仅是一个SDK,是一个应用顶层的API,那么它下层支持的数据处理框架(官方叫做Apache Beam Pipeline Runners)主要包括Apache Apex,Apache Flink,Apache Spark以及它自己的Google Cloud Dataflow。

Apache Beam 的两大特点

1、将数据的批处理(batch)和流处理(stream)编程范式进行了统一;
2、能够在任何的执行引擎上运行。

它不仅为模型设计、更为执行一系列数据导向的工作流提供了统一的模型。这些工作流包括数据处理、吸收和整合。

为什么会诞生Apache Beam

大数据处理领域的一大问题是:开发者经常要用到很多不同的技术、框架、API、开发语言和 SDK。根据任务场景的不一样,开发者很可能会用 MapReduce 进行批处理,用 Apache Spark SQL 进行交互请求,用 Apache Flink 实时流处理。新的分布式处理框架可能带来的更高的性能,更强大的功能,更低的延迟等,但用户切换到新的分布式处理框架的代价也非常大:需要学习一个新的数据处理框架,并重写所有的业务逻辑。

解决这个问题的思路包括两个部分,首先,需要一个编程范式,能够统一,规范分布式数据处理的需求,例如,统一批处理和流处理的需求。其次,生成的分布式数据处理任务应该能够在各个分布式执行引擎上执行,用户可以自由切换分布式数据处理任务的执行引擎与执行环境。Apache Beam正是为了解决以上问题而提出的。

因为笔者并没有实际使用Apache Beam的经验,所以深入的知识请参见Apache Beam的官方文档。

猜你喜欢

转载自blog.51cto.com/15127589/2680423