二、【计算】流|批|OLAP一体 的Flink引擎(下) | 青训营笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 二、【计算】流|批|OLAP一体 的Flink引擎(下) | 青训营笔记

一、Flink 架构优化


1 流/批/OLAP 业务场景概述


三种业务场景的特点


image.png

  • 三种业务场景面临的挑战

image.png


2 为什么三种场景可以用一套引擎来解决


  • 场景上对比发现:
  • 批式计算是流式计算的特例,Everything is Streams,有界数据集(批式数据)也是一种数据流、一种特殊的数据流;
  • OLAP 计算是一种特殊的批式计算,它对并发和实时性要求更高,其他情况与普通批式作业没有特别大区别。

image.png


3 Flink 如何支持 OLAP 场景


  • Flink 做 OLAP 的优势
  • 统一引擎:流处理、批处理、OLAP 统一使用 Flink 引擎;
  • 降低学习成本,仅需要学习一个引擎;
  • 提高开发效率,很多 SQL 是流批通用;
  • 提高维护效率,可以更集中维护好一个引擎;
  • 既有优势:利用 Flink 已有的很多特性,使 OLAP 使用场景更为广泛;
  • 使用流处理的内存计算、Pipeline;
  • 支持代码动态生成;
  • 也可以支持批处理数据落盘能力;
  • 相互增强:OLAP 能享有现有引擎的优势,同时也能增强引擎能力
  • 无统计信息场景的优化;
  • 开发更高效的算子;
  • 使 Flink 同时兼备流、批、OLAP 处理的能力,成为更通用的框架。
  • Flink OLAP 场景的挑战
  • 秒级和毫秒级的小作业;
  • 作业频繁启停、资源碎片;
  • Flink OLAP 计算相比流式和批式计算,最大的特点是 Flink OLAP 计算是一个面向秒级和毫秒级的小作业,作业在启动过程中会频繁申请内存、网络以及磁盘资源,导致 Flink 集群内产生大量的资源碎片;
  • Latency + 高 APS 要求;
  • OLAP 最大的特点是查询作业对 Latency 和 QPS 有要求的,需要保证作业在 Latency 的前提下提供比较高的并发调度和执行能力,这就对 Flink 引擎提出了一个新的要求。
  • Flink OLAP 架构现状
  • Client:提交 SQL Query;
  • Gateway:接收 Client 提交的 SQL Query,对 SQL 进行语法解析和查询优化,生成 Flink 作业执行计划,提交给 Session 集群;
  • Session Cluster:执行作业调度及计算,并返回结果。
  • JobManager 管理作业的执行,在接收到 Gateway 提交过来的作业逻辑执行计划后,将逻辑执行计划转换为物理执行计划,为每个物理计算任务分配资源,将每个计算任务分发给不同的 TaskManager 执行,同时管理作业以及每个计算任务执行状态;
  • TaskManager执行具体的计算任务,采用线程模型,为每个计算任务创建计算线程,根据计算任务的上下游数据依赖关系跟上游计算任务建立/复用网络连接,向上游计算任务发送数据请求,并处理上游分发给它的数据。

image.png

  • Flink 在 OLAP 架构上的问题与设想
  • 架构与功能模块:
  • JobManager 与 ResourceManager 在一个进程内启动,无法对JobManager 进行水平扩展;
  • Gateway 与 Flink Session Cluster 互相独立,无法进行统一管理;
  • 作业管理及部署模块:
  • JobManager 处理和调度作业时,负责的功能比较多,导致单作业处理时间长、并占用了过多的内存;
  • TaskManager 部署计算任务时,任务初始化部分耗时验证,消耗大量 CPU;
  • 资源管理及计算任务调度:
  • 资源申请及资源释放流程链路过长;
  • Slot 作为资源管理单元,JM 管理 slot 资源,导致 JM 无法感知到 TM 维度的资源分布,使得资源管理完全依赖于 ResourceManager;
  • 其他:
  • 作业心跳与 Failover 机制,并不合适 AP 这种秒级或毫秒级计算场景;
  • AP 目前使用 Batch 算子进行计算,这些算子初始化比较耗时;
  • 设想如下:

image.png

  • 总结

批式数据处理场景以及OLAP交互式业务场景,都可以转化成对流式数据的处理,根据这一共同点,Flink内部实现了将以上三种场景处理模块的相同部分提取出来,加以优化,就形成了流批OLAP一体的Flink引擎;但对于OLAP场景来说,由于其对数据实时性查询(流式数据处理)要求较高,且需要高并发,目前的Flink内部架构以及作业能力还无法满足(在架构与功能模块,作业管理及部署模块,资源管理及计算任务调度模块),尚有较大的提升空间。


二、使用案例


  • Flink现状

image.png


不断向流批一体演进


1电商流批一体实践


  • 问题状况:
    目前电商业务数据分为离线数仓和实时数仓建设,离线和实时数据源,计算引擎和业务代码没有统一,在开发相同需求的时候经常需要离线和实时对齐口径,同时,由于需要维护两套计算路径,对运维也带来压力。
  • 演进目标:

image.png


2 Flink OLAP场景实践


image.pngimage.png


目前流批一体的落地应用尚且不太成熟,但流批一体的业务应用场景将会是一个大趋势,其实现可以降低开发以及维护成本,同时可以提高作业效率,而Flink内部也在逐渐向流批一体演化,值得期待。

🌹写在最后💖: 路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹


相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
3月前
|
存储 消息中间件 监控
基于 Hologres+Flink 的曹操出行实时数仓建设
本文主要介绍曹操出行实时计算负责人林震,基于 Hologres+Flink 的曹操出行实时数仓建设的解决方案分享。
109390 1
基于 Hologres+Flink 的曹操出行实时数仓建设
|
4月前
|
SQL 消息中间件 Kafka
流数据湖平台Apache Paimon(二)集成 Flink 引擎
流数据湖平台Apache Paimon(二)集成 Flink 引擎
360 0
|
1月前
|
分布式计算 关系型数据库 OLAP
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
72 0
|
2月前
|
SQL 消息中间件 Kafka
flink问题之做实时数仓sql保证分topic区有序如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
705 3
|
2月前
|
SQL 并行计算 大数据
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
关于Flink服务的搭建与部署,由于其涉及诸多实战操作而理论部分相对较少,小编打算采用一个独立的版本和环境来进行详尽的实战讲解。考虑到文字描述可能无法充分展现操作的细节和流程,我们决定以视频的形式进行分析和介绍。因此,在本文中,我们将暂时不涉及具体的搭建和部署步骤。
496 3
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
|
3月前
|
供应链 算法 新能源
基于 Flink 的实时数仓在曹操出行运营中的应用
本文整理自曹操出行基础研发部负责人史何富,在 Flink Forward Asia 2023 主会场的分享。
90427 2
基于 Flink 的实时数仓在曹操出行运营中的应用
|
3月前
|
存储 消息中间件 Kafka
流式湖仓增强,Hologres + Flink 构建企业级实时数仓
2023 年 12 月,由阿里云主办的实时计算闭门会在北京举行,阿里云实时数仓 Hologres 研发负责人姜伟华现场分享 Hologres+Flink 构建的企业级实时数仓,实现全链路的数据实时计算、实时写入、实时更新、实时查询。
120780 107
流式湖仓增强,Hologres + Flink 构建企业级实时数仓
|
3月前
|
存储 消息中间件 监控
曹操出行基于Hologres+Flink的实时数仓建设
曹操出行实时计算负责人-林震对于曹操出行基于Hologres+Flink的实时数仓建设进行演讲
|
3月前
|
存储 消息中间件 Kafka
实时湖仓增强,Hologres + Flink构建企业级实时数仓
本文主要介绍Hologres+Flink构建的企业级实时数仓,实现全链路的数据实时计算、实时写入、实时更新、实时查询。
|
4月前
|
消息中间件 Kafka API
2021年最新最全Flink系列教程_Flink原理初探和流批一体API(二.五)
2021年最新最全Flink系列教程_Flink原理初探和流批一体API(二.五)
40 0

热门文章

最新文章