流批OLAP 一体的 Flink 引擎介绍| 青训营笔记

56 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第3天主要学习了流批OLAP 一体的 Flink 引擎,对流批一体计算有了更深刻的认识,如果有什么错误请大家指正PS:老师真的很流批(手动滑稽)。

Flink概述

什么是大数据

大数据指在一定时间内用常规软件工具对其进行获取、存储、管理和处理的数据合集

大数据计算架构发展历史

image-20220727231712036.png

为什么需要流式计算

大数据的实时性价值更大:

  • 监控场景
  • 金融风控
  • 实时推荐

image-20220727232135808.png

image-20220727235923984.png

批计算是指对静态数据的批量处理,即当开始计算之前数据已经准备到位,主要用于数据挖掘和验证业务模型;流式计算是指对具有时效性的数据进行的计算,流式计算需要依赖上游数据传输的正确性和实时性以及下游存储系统的高吞吐

在传统的数据处理流程中,总是先收集数据,然后将数据放到数据库中。当人们需要的时候通过数据库对数据做查询,得到答案或进行相关的处理。这样看起来虽然非常合理,但是结果却非常的紧凑,尤其是在一些实时搜索应用环境中的某些具体问题,类似于MapReduce方式的离线处理并不能很好地解决问题。这就引出了一种新的数据计算结构---流计算方式。它可以很好地对大规模流动数据在不断变化的运动过程中实时地进行分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。

流式计算引擎发展历程

image-20220728002830486.png

image-20220728002915448.png

为什么使用Flink

image-20220728095611157.png

Flink开源生态

image-20220728095834922.png

Flink整体架构

  • 分层架构

    • SDK层
    • 执行引擎层
    • 状态存储层
    • 资源调度层
  • 总体架构

    • JobManager
    • TaskManager

Flink流批一体的实现

为什么需要流批一体

  • 实时播放量,点赞数等是流处理
  • 创作者数据信息以天为单位是批处理

分开处理的技术痛点

  • 人力成本高
  • 数据链路冗余
  • 数据口径不一致

流批一体的挑战

如何实现流批一体

  • SQL层
  • API层统一
  • Scheduler层架构统一
  • Failover Recovery层架构统一
  • Shuffle Service 层架构统一

Flink架构优化

  • 流批/OLAP业务场景概述
  • 为什么三种场景可以用一套引擎来解决
  • Flink如何支持OLAP场景