Apache Beam 架构原理及应用实践

导读:大家好,很荣幸跟大家分享 Apache Beam 架构原理及应用实践。讲这门课之前大家可以想想,从进入 IT 行业以来,不停的搬运数据,不管职务为前端,还是后台服务器端开发。随着这两年科技的发展,各种数据库,数据源,应运而生,大数据组件,框架也是千变万化,从 Hadoop 到现在的 Spark、Flink,数据库从先前的 oracle、MySQL 到现在的 NOSQL,不断延伸。那么有没有统一的框架,统一的数据源搬砖工具呢?

带着这样的疑问,开始我们今天的分享,首先是内容概要:

  • Apache Beam 是什么?

  • Apache Beam 的优势

  • Apache Beam 的架构设计

  • Apache Beam 的核心组件刨析

  • AloT PB 级实时数据,怎么构建自己的“AI 微服务”?

Apache Beam 是什么?

1. Apache Beam 的前世今生

大数据起源于 Google 2003年发布的三篇论文 GoogleFS、MapReduce、BigTable 史称三驾马车,可惜 Google 在发布论文后并没有公布其源码,但是 Apache 开源社区蓬勃发展,先后出现了 Hadoop,Spark,Apache Flink 等产品,而 Google 内部则使用着闭源的 BigTable、Spanner、Millwheel。这次 Google 没有发一篇论文后便销声匿迹,2016年2月 Google 宣布 Google DataFlow 贡献给 Apache 基金会孵化,成为 Apache 的一个顶级开源项目。然后就出现了 Apache Beam,这次不它不是发论文发出来的,而是谷歌开源出来的。2017年5月17日 发布了第一个稳定版本2.0。

2. Apache Beam 的定义

Apache Beam 的定义如上图,其定位是做一个统一前后端的模型。其中,管道处理和逻辑处理是自己的,数据源和执行引擎则来自第三方。那么,Apache Beam 有哪些好处呢?

Apache Beam 的优势

1. 统一性

① 统一数据源,现在已经接入的 java 语言的数据源有34种,正在接入的有7种。Python 的13种。这是部分的数据源 logo,还有一些未写上的,以及正在集成的数据源。基本涵盖了整个 IT 界每个时代的数据源,数据库。

② 统一编程模型,Beam 统一了流和批,抽象出统一的 API 接口。

③ 统一大数据引擎,现在支持性最好的是 flink,spark,dataflow 还有其它的大数据引擎接入进来。

2. 可移植性

Beam 的 jar 包程序可以跨平台运行,包括 Flink、Spark 等。

3. 可扩展性

很多时候,随着业务需求的不断变化,用户的需要也随之变化,原来 Apache Beam 的功能可能需要进行扩展。程序员就会根据不同的需求扩展出新的技术需求,例如我想用 spark 新特性,能不能重写一下 sparkrunner 换个版本。我想重写一下 kafkaIO 可以吗?对于数据的编码,我可以自定义吗?最后干脆我感觉 Pulsar 技术不错,我想自己写个 SDKIO,集成进去可以不?答案都是可以的。Apache Beam 是具有可扩展性的,零部件都可以重塑。

4. 支持批处理和流处理

如果在 AIoT 行业,开发过程中,我们可能经常碰到两种数据:

  • 摄像头等传感器的实时报警信息

  • 不同数据库的数据,进行一起处理

Beam 对这两种数据是同时支持的。

5. 支持多语言开发

此外 Beam 支持 java,Python,go,Scala 语言,大家可以利用自己擅长的语言开发自己的 Beam 程序。

6. DAG 高度抽象

<

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值