Flink初探

推荐:博主历时三年倾注大量心血创作的《大数据平台架构与原型实现:数据中台建设实战》一书已由知名IT图书品牌电子工业出版社博文视点出版发行,真诚推荐给每一位读者!点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,扫码进入京东手机购书页面!

在这里插入图片描述

 

 

编程模型

应该说Flink的编程编程模型和Spark Streaming的DStream还是非常相似的,也是抽象出了Stream概念来表示没有边界的数据流,针对Stream所施加的操作被称之为"transformation",它会把一个流转换成另一个流作为转换的输出。与很多流计算模型一样,流的起点往往是数据的输入源,被称之为"source",流的终点是数据的输出目的地,被成为“sink”。下 图形象地展示了Flink的流计算编程模型:

Flink编程模型

窗口计算

Flink同样支持窗口计算,并且提供多种不同的时间概念供开发者选择,这些时间概念包括:

  1. 事件时间:是事件创建的时间。它通常由事件中的时间戳描述,例如附接在生产传感器,或者生产服务。Flink通过时间戳分配器访问事件时间戳。
  2. 摄入时间:是事件进入Flink数据流源的时间。
  3. 处理时间:是每一个操作在执行时的本地时间。

这是我们第一次系统地梳理流计算时关于"时间"的概念,在前面介绍Spark Streaming时我们提到了事件时间,大多数时候,事件时间总是更具有实际参考价值,但是全面了解一下这三种时间的定义还是很有必要的,Flink正好给我们总结归纳好了:

此处输入图片的描述

批处理与更多的编程模型

Flink确实走了一条“不寻常”的路,它以它的流计算内核为基础,将数据处理能力从流计算拓展到了批处理,进而又在更上层提供了面向不同的计算需求的"上层库",下图展示了Flink整体的架构和编程接口:

此处输入图片的描述

在流处理方面,Flink以DataStream API为基础,向上封装了两个DSL的库,一个是面向复杂事件处理的库:FlinkCEP,另一个是面向结构化数据操作的Table/SQL引擎。在批处理方面,Flink提供了一组专门面向批处理的API- DataSet,然后以这个批处理平台为支撑,向上又分装了机器学习库FlinkML,图计算库Gelly以及Table /SQL引擎。所以说,Flink并不是一个单纯的流计算引擎,而是和Spark一样,以一个核心的库或底层运行时为基础,同时提供流计算和批处理引擎,然后再向上分装各类应用库,进而形成了一个大的生态系统。

bluishglc CSDN认证博客专家 CSDN博客专家
耿立超,架构师,CSDN博客专家,14年IT系统开发和架构经验,对大数据、企业级应用架构、SaaS、分布式存储和领域驱动设计有丰富的实践经验。对Hadoop/Spark 生态系统有深入和广泛的研究,参与过Hadoop商业发行版的开发,目前负责企业数据中台的架构设计和开发工作,热衷函数式编程,著有《大数据平台架构与原型实现:数据中台建设实战》https://item.jd.com/12677623.html 一书。
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值