带你走入 Flink 的世界(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 在 18 年时,就听说过 Flink 流式计算引擎,是阿里调研选型选择的新一代大数据框计算架,当时就记住了这个新框架。 由于工作中,常写的还是业务开发,没有系统的去学习它,恰好在今年,我们的数据增长越来越快,架构师提出可以根据数据进行加工,通过数据分析得到更多指标性的计算结果,提供更多有价值的业务给用户。

处理流程

Flink 程序的基本构建块是流和转换。(请注意,FlinkDataSet API中使用的 DataSet也是内部流)从概念上讲,流是数据记录流(可能永无止境),而转换是将一个或多个流作为一个操作的操作。一个输入,可以产生一个(例如 map)或多个输出流(例如 flatMap)。22.jpg上图是数据处理流程,可以看到有几个核心组件:

1. 数据源 Source

自带的 api 中,可以读取数据如下:集合数据(fromCollection)、文件数据(readFile)、网络套接字(socket)以及更多扩展来源(addSource),更多扩展中通过自定义来实现 RichSourceFuncation,实现读取更多来源的数据。

像图中获取的数据源是 Kafka,与其它中间件整合中,也封装了很多方便的方法,调用它们可以更方便获取数据源的数据。

2. 转换 Transaction

进行数据的转化,对应于文档中的算子 Operator。常见的数据操作有以下:mapflatMapfilterkeyByreducefold(在 1.9 中看到被标注为 deprecated)、aggregatewindow等常用操作。

同时从上图也能看出,转换的操作可以不止一次,多个算子可以形成 chain 链式调用,然后发挥作用。

3. 存储 Sink

进行数据的存储或发送,对应于文档中的 connector(既可以连接数据源,也能发送到某个地方存储起来)。

常用的存储 sinkKafkaApache CassandraElasticsearchRabbitMQHadoop 等。与前面一样,可以通过扩展 RichSinkFunction 进行自定义存储的逻辑。

性能比较

例如 HadoopStormSpark,与这些优秀的前辈们进行比较,对比性能的高低,如果选择使用 Flink,必须得比以前的开发方便和性能好。

由于之前没有使用过这些大数据框架,所以测评数据可以参考了这两篇:

下面简单列出它俩的吞吐量和作业延迟的比较

23.jpg


上图的数据源是 Kafka Source,蓝色是 Storm,橙色是 Flink,在一个分区 partition 情况下,Flink 吞吐约为 Storm 的 3.2 倍;而在 8 个分区情况下,性能提高到 4.6 倍。24.jpg

上图采用的的 outTime-eventTime 作为延迟,可以看出,Flink 的延迟还是比 Storm 的要低。

管理方式 JobManager、TaskWorker

25.jpg

上面是官方示意图,阐述了 Flink 提交作业的流程,应用程序 Flink ProgramJobManageTaskManager 之间的关系。

26.jpg

上面是我对它的理解,个人觉得 zhisheng 大佬写的更加详细,可以参考这篇文章:http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/

高可用 HA、状态恢复

High Availablity 是个老生常谈的话题了,服务难免会遇到无法预测的意外,如何在出现异常情况下并尽快恢复,继续处理之前的数据,保证一致性,这是个考量服务稳定性的标准。

Flink 提供了丰富的状态访问(例如有 ListMapAggregate 等数据类型),以及高效的容错机制,存储状态 State,然后通过存储了状态的 CheckpointSavepoint 来帮助应用进行快速恢复。

27.jpg

详细请参考这两篇:

社区生态

真的是十分敬仰发明优秀框架的团队,也十分敬佩每一个为技术做贡献的参与者,所以每次找到相关的资料都跟发现宝藏一样。

下面罗列一下目前找到的资料:

从上面的资料可以看出,Flink 的社区慢慢从小众走向大众,越来越多人参与。

基础知识点

运行环境如下:

OS : Mac

Flink Version : 1.9

IDE : IDEA

Java Version : 1.8

28.jpg

上图是我在学习过程中整理的一些知识点,之后将会根据罗列的知识点慢慢进行梳理和记录~

4. 总结:未来的计算方式

从调研的结果中能看出,无论从性能、接口编程和容错上,Flink 都是一个不错的计算引擎。github 拥有 1w 多个 star,这么多人支持以及阿里巴巴的大力推广,还有在 2019.09 参加的云栖大会,演讲嘉宾对 Flink 的展望29.jpg

Apache Flink 已经是非常优秀和成熟的流计算引擎

Apache Flink 已经成为优秀的批处理引擎的挑战者

继续挖掘 Apache Flink 在 OLAP 数据分析领域的潜力,使其成为优秀的数据分析引擎

直觉相信,Flink 的发展前景不错,希望接下来与大家分享和更好的去学习它~

参考资料

  1. Flink 从 0 到 1 学习 —— Apache Flink 介绍
  2. Apache Flink 是什么?
  3. Apache Flink 零基础入门(一&二):基础概念解析
  4. 为什么说流处理即未来?
  5. Apache Flink 零基础入门(七):状态管理及容错机制
  6. Apache Flink状态管理和容错机制介绍


欢迎加入我们的知识星球,一起成长,交流经验。加入方式,长按下方二维码噢

最后,我想重复一句话:选择和一群优秀的人一起成长,你成长的速度绝对会不一样!

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
SQL 存储 资源调度
带你走入 Flink 的世界(上)
在 18 年时,就听说过 Flink 流式计算引擎,是阿里调研选型选择的新一代大数据框计算架,当时就记住了这个新框架。 由于工作中,常写的还是业务开发,没有系统的去学习它,恰好在今年,我们的数据增长越来越快,架构师提出可以根据数据进行加工,通过数据分析得到更多指标性的计算结果,提供更多有价值的业务给用户。
带你走入 Flink 的世界(上)
|
3月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
5月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
843 7
阿里云实时计算Flink在多行业的应用和实践
|
28天前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
934 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
4月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
24天前
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。
zdl
|
16天前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
120 56
|
2月前
|
运维 搜索推荐 数据安全/隐私保护
阿里云实时计算Flink版测评报告
阿里云实时计算Flink版在用户行为分析与标签画像场景中表现出色,通过实时处理电商平台用户行为数据,生成用户兴趣偏好和标签,提升推荐系统效率。该服务具备高稳定性、低延迟、高吞吐量,支持按需计费,显著降低运维成本,提高开发效率。
70 1
|
2月前
|
运维 数据处理 Apache
数据实时计算产品对比测评报告:阿里云实时计算Flink版
数据实时计算产品对比测评报告:阿里云实时计算Flink版
|
3月前
|
存储 运维 监控
阿里云实时计算Flink版的评测
阿里云实时计算Flink版的评测
80 15