本系列历史文章

大数据技术原理与应用学习笔记(一)
大数据技术原理与应用学习笔记(二)
大数据技术原理与应用学习笔记(三)
大数据技术原理与应用学习笔记(四)
大数据技术原理与应用学习笔记(五)
大数据技术原理与应用学习笔记(六)
大数据技术原理与应用学习笔记(七)
大数据技术原理与应用学习笔记(八)
大数据技术原理与应用学习笔记(九)
大数据技术原理与应用学习笔记(十)
大数据技术原理与应用学习笔记(十一)

Flink

Flink简介

Flink特性:

  • 批流一体化
  • 精密的状态管理
  • 事件时间支持
  • 精确一次的状态一致性保障

为什么选择Flink

传统数据处理架构

特点是采用一个中心化的数据库系统来存储。随着业务量增大,负载会增大,容易发生问题。

大数据lambda架构

如图所示:
在这里插入图片描述
缺点:导致平台复杂度过高,运维成本高。

流处理架构

如图所示:
在这里插入图片描述
流处理架构具有如下特点:

  • 不存在大型集中式数据库,避免了数据节点不堪重负;
  • 将批处理看成流处理的子集

Flink是理想的流处理框架

如下表所示:

框架 性能
Flink 低延迟√ 高吞吐√ 高性能√
Storm 低延迟√ 高吞吐× 准确计算×
SparkStreaming(微批处理) 高吞吐√ 容错性√ 低延迟(实时处理)×

Flink的优势

高级特性:

  • 提供有状态的计算
  • 支持状态管理
  • 支持强一致性语义
  • 支持对乱序消息的处理

优势:

  • 同时支持高吞吐、低延迟、高性能
  • 同时支持批处理、流处理
  • 高度灵活的流式窗口
  • 支持有状态计算
  • 具有良好的容错性
  • 具有独立的内存管理
  • 支持迭代和增量迭代

应用场景

应用基本可分为 事件驱动型应用、数据分析应用和数据流水线应用

事件驱动型应用

优势:

  • 访问本地数据,无需访问远程查询
  • 每个应用只需考虑自己的数据,很少做协调工作

例子:反欺诈、异常检测、基于规则的报警、业务流程监控等。

数据分析应用

优势:

  • 获取洞察结果的延迟更低
  • 更加简单的应用架构

例子:电信网络质量分析、消费者技术中实时数据即席分析,大规模图分析等。

数据流水线应用

优势: 减少了数据转移过程的延迟

例子:电子商务实时查询索引构建,电子商务中持续ETL等。

Flink技术栈

Flink的层次结构可大体分为:物理部署层、Runtime核心层、APIs & LIBRARIES层

物理部署层

物理部署层为底层,运行模式包括:

  • GCE/EC2
  • Local
  • Standalone集群
  • YARN集群

Runtime核心层

该层为核心实现层,包括两套API:

  • 流处理 DataStream API
  • 批处理 DataSet API

APIs & LIBRARIES层

该层提供批处理和流处理的接口,并抽象出不同的应用类型的组件库:

  • CEP(基于流处理的复杂事件处理库)
  • SQL & Table库(流/批处理)
  • FlinkML(基于批处理的机器学习库)

Flink体系结构

Flink系统主要由两个组件组成,分别为JobManager和TaskManager,Flink 架构也遵循Master-Slave架构设计原则,JobManager为Master节点,TaskManager为Slave节点。
在这里插入图片描述

Flink编程模型

Flink编程模型如图所示:
在这里插入图片描述

Flink编程实践

关于Flink编程实践请参考厦大数据库博客:Flink安装与编程实践(Flink1.9.1)

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐