Apache Beam的架构概览
不多说,直接上干货!
Apache Beam是一个开源的数据处理编程库,由Google贡献给Apache的项目,前不久刚刚成为Apache TLP项目。它提供了一个高级的、统一的编程模型,允许我们通过构建Pipeline的方式实现批量、流数据处理,并且构建好的Pipeline能够运行在底层不同的执行引擎上。刚刚接触该开源项目时,我的第一感觉就是:在编程API的设计上,数据集及其操作的抽象有点类似Apache Crunch(MapReduce Pipeline编程库)项目;而在支持统一数据处理模型上,能够让人想到Apache Flink项目。如果深入了解Apache Beam,你会发现未来Apache Beam很可能成为数据处理领域唯一一个能够将不同的数据应用统一起来的编程库。
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核心的主要有两层:
- Pipeline构建层
在Pipeline构建层,针对不同的编程语言,构建一组用于定义Pipeline相关抽象,提供编程API,这一层被称为Beam SDKs。最终的用户(具有不同编程语言技能的人员)可以基于这些抽象的Beam SDK来构建数据处理Pipeline。
- Runner适配层
Runner适配层,主要是用来对接底层的计算引擎,用来执行上层用户开发好的Pipeline程序。
Apache Beam的架构概览相关推荐
- Apache Beam 架构原理及应用实践
导读:大家好,很荣幸跟大家分享 Apache Beam 架构原理及应用实践.讲这门课之前大家可以想想,从进入 IT 行业以来,不停的搬运数据,不管职务为前端,还是后台服务器端开发.随着这两年科技的发展 ...
- Apache Beam 是什么,它为什么比其他选择更受欢迎?
1. 概述 在本教程中,我们将介绍 Apache Beam 并探讨其基本概念.我们将首先演示使用 Apache Beam 的用例和好处,然后介绍基本概念和术语.之后,我们将通过一个简单的例子来说明 A ...
- Apache Beam是什么?
Apache Beam 的前世今生 1月10日,Apache软件基金会宣布,Apache Beam成功孵化,成为该基金会的一个新的顶级项目,基于Apache V2许可证开源. 2003年,谷歌发布了著 ...
- pomelo架构概览
pomelo架构概览 pomelo之所以简单易用.功能全面,并且具有高可扩展性.可伸缩性等特点,这与它的技术选型和方案设计是密不可分的.在研究大量游戏引擎设计思路基础上,结合以往游戏开发的经验,确定了 ...
- Apache Beam指南
Apache Beam 标签(空格分隔): Hadoop 1. What is Beam ? 前世今生: 诞生背景: 分布式数据处理发展迅猛 –> 新的分布式数据处理技术越来越多 –> H ...
- Apache Beam实战指南 | 玩转KafkaIO与Flink
AI前线导读:本文是 Apache Beam实战指南系列文章 的第二篇内容,将重点介绍 Apache Beam与Flink的关系,对Beam框架中的KafkaIO和Flink源码进行剖析,并结合应用示 ...
- flutter ios启动白屏_Flutter技术架构概览
前言 最近在整理各种技术架构,给自己的列了个TODO list,希望能在几个月的时间内,研究完各种前端技术架构,包括移动端技术架构.今天分享一下自己整理的flutter技术架构.完整的技术架构TODO ...
- Apache Beam欲通过uber api获取大数据
现在,有用的Apache大数据项目似乎每日更新.相比于每次都重新学习的方式,如果可以通过一个统一的API如何呢? 长期开玩笑说Hadoop生态系统是那种如果你不喜欢一个为特定系统的API,等待五分钟, ...
- Apache Beam发布第一个稳定版本
Apache Beam在官方博客上正式发布了Beam 2.0.0.这是Beam有史以来的第一个稳定版本,根据Beam社区的声明,Beam意欲为未来版本发布保持API的稳定性,并让Beam适用于企业的部 ...
最新文章
- MongoDB自增主键
- 隐藏讨厌的桌面挂载卷图标
- Yarn 内存分配管理机制及相关参数配置
- C++十进制数转换为二进制表示的算法(附完整源码)
- quill一些插件的配置 注意事项
- weblogic简单介绍
- 2018-10-16
- 性能测试oracle瓶颈定位,性能测试难点之瓶颈分析
- MyEclipse创建Java项目
- win7 虚拟机安装
- 三菱FX1S PLC控制伺服电机小结
- 华为路由器dhcp配置
- 塞班系统更新服务器,塞班系统又更新了,又更新了,仿佛回到十年前!
- 前端页面img标签图片显示发生错误或者没有图片都显示默认的图片
- [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题
- #10049. 「一本通 2.3 例 1」Phone List
- edb的安装以及带参数使用
- python读取sav文件_在Python中读取SPSS(.sav)文件时,获取“title already used as a name or title”错误...
- 为什么手机多用arm?
- Cris 的 Python 数据分析笔记 08:NumPy 和 Pandas 整理脑图
热门文章
- 九、中缀表达式转为后缀表达式
- LeetCode 102. Binary Tree Level Order Traversal--递归,迭代-Python,Java解法
- Debian/Ubuntu 报错解决:Command 'ifconfig' not found, but can be installed with
- C++读某个内存地址对应的值
- php微信级联菜单,php微信公众号开发之二级菜单
- 壁布接缝压条_墙布压条样板
- ssconvert 安装_在学ssm框架的时候,有点晕,会是会用了,但是一直搞不懂它的配置。该怎么深入理解?...
- reg类型变量综合电路_verilog中reg和wire类型的区别
- vscode jsx html补全,VScode设置jsx语法自动补全
- java.lang.NullPointerException空指针问题