Apache Beam的架构概览

 Apache Beam是一个开源的数据处理编程库,由Google贡献给Apache的项目,前不久刚刚成为Apache TLP项目。它提供了一个高级的、统一的编程模型,容许咱们经过构建Pipeline的方式实现批量、流数据处理,而且构建好的Pipeline可以运行在底层不一样的执行引擎上。刚刚接触该开源项目时,个人第一感受就是:在编程API的设计上,数据集及其操做的抽象有点相似Apache Crunch(MapReduce Pipeline编程库)项目;而在支持统一数据处理模型上,可以让人想到Apache Flink项目。若是深刻了解Apache Beam,你会发现将来Apache Beam极可能成为数据处理领域惟一一个可以将不一样的数据应用统一块儿来的编程库。apache

 

 

 

 

 

 

Apache Beam架构概览编程

  Apache Beam目前最新版本为2.1.1-SNAPSHOT,最新的Release版本为2.0.0,不少特性还在开发中。架构

 

 

 

  在网上找到一个由Andrew Psaltis在2016年6月份演讲的《Apache Beam: The Case for Unifying Streaming API’s》,引用了其中一个Apache Beam的架构图,以下图所示:
    apache-beam-architecture编程语言

 

 

上图中,咱们能够看到,Apache Beam核心的主要有两层设计

  • Pipeline构建层

  在Pipeline构建层,针对不一样的编程语言,构建一组用于定义Pipeline相关抽象,提供编程API,这一层被称为Beam SDKs。最终的用户(具备不一样编程语言技能的人员)能够基于这些抽象的Beam SDK来构建数据处理Pipeline。blog

  • Runner适配层

  Runner适配层,主要是用来对接底层的计算引擎,用来执行上层用户开发好的Pipeline程序。ip

相关文章
相关标签/搜索