IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 天天JAVA:Flink -> 正文阅读

[大数据]天天JAVA:Flink

Flink

为什么需要Apache Flink(流式处理计算)?

  • 当代数据激增。

  • Apache Spark 取代 MapReduce 成为当前大数据处理标准。

  • 实时数据处理的重要性。

  • Apache Flink 开源社区佼佼者:高吞吐、低延迟、高性能的分布式处理框架。

基础特性

  • Lambada:实时数据处理(Storm、Spark Streaming)+全量数据处理(MapReduce、Spark)。

  • 实时+全量的架构统一:将数据切分成微批的处理模式进行流式数据处理。

    • 流批一体
  • 数据产生的本质,其实是一条条真实存在的事件。事件时间(Event Time)+水位线(Watermark)-> 保证:有序。

    • 有序性:watermark有个参数允许延迟时间,举例:窗口大小=10s,容忍允许延迟时间=5s。

      当事件时间>=10:08:08 00:00:10的事件到时,Flink不认为事件时间=[10:08:08 00:00:00, 10:08:08 00:00:10)事件都到了。
      当事件时间>=10:08:08 00:00:15的事件到时,Flink会认为事件时间=[10:08:08 00:00:00, 10:08:08 00:00:10)事件都到了(虽然有可能还有数据没到,但是不等那些了)。

  • 支持有状态计算(中间结果缓存)保证:高效。(迭代计算)

    • 高效性。
  • 高度灵活的窗口(Windows)操作保证:一定范围的聚合计算。

    • 聚合计算。

    • 窗口类型:

      1. 业务维度划分:

        • 时间维度划分(TimeWindow:固定时间长度划分窗口,比如 5s一个窗口)
        • 空间维度划分(CountWindow:固定个数的事件为单位划分窗口,比如2个事件一个窗口)
      2. 移动方式划分:

        • 滚动窗口:将事件分配到长度固定且不重叠的桶中。(滚动计数窗口滚动时间窗口
        • 滑动窗口:将事件分配到大小固定且允许相互重叠的桶中,这意味着每个事件有可能同时属于多个桶。要指定窗口的长度和滑动间隔来定义滑动窗口。(**时间滑动窗口 ** 和 计数滑动窗口
      3. 会话窗口(Session Windows)主要是将某段时间内活跃度较高的数据聚合成一个窗口进行计算,窗口的触发的条件是 Session Gap,是指在规定的时间内如果没有数据活跃接入,则认为窗口结束,然后触发窗口计算结果。Session Windows 不需要有固定 windows size 和 slide time,只需要定义 session gap,来规定不活跃数据的时间上限即可。

  • Time时间:

    • 事件时间:每个事件在其生产设备上发生的时间,是事件的属性之一。
    • 摄入时间:是事件进入Flink的时间。
    • 处理时间:Flink处理事件记录时,当前的系统时间。
  • 轻量级分布式快照(State Snapshot),执行状态信息持久化存储,任务异常可以从Checkpoints中进行任务自动恢复,保证:数据处理过程一致性。(容错:fault tolerance->exactly-once语义)

    • 一致性。
  • Flink序列化/反序列化将所有数据对象转换成二进制在内存中存储,提升内存利用率,降低JVM GC,保证稳定性。

    • 内存管理。
  • Save Points(保存点):任务执行快照保存在存储介质上,当任务重启时可以直接从事先保存的Save Points恢复原有计算状态。

    • 健壮性。
  • exactly-once语义:At Least Once 可以保证数据不丢失,At Most Once 可以保证数据不重复。exactly-once语义保证既不丢失,也不重复。At Least Once + 幂等性 = Exactly Once

  • Task slot是Flink中最小的资源单位。假如一个taskManager有3个slot,他就会给每个slot分配1/3的内存资源,目前slot不会对cpu进行隔离。同一个taskManager中的slot会共享网络资源和心跳信息。

架构

  • Client:与JobManager交互的Client客户端。

  • JobManager:主要负责调度task,协调checkpoint已经错误恢复等。

  • TaskManager:执行数据流的task,一个task通过设置并行度,可能会有多个subtask。 每个TaskManager都是作为一个独立的JVM进程运行的。他主要负责在独立的线程执行的operator。其中能执行多少个operator取决于每个taskManager指定的slots数量。当然在Flink中并不是一个slot只可以执行一个task,在某些情况下,一个slot中也可能执行多个task。一般情况下,flink都是默认允许共用slot的,即便不是相同的task,只要都是来同一个job即可。

参考

  • https://www.cnblogs.com/fengtingxin/p/11128213.html
  • https://zhuanlan.zhihu.com/p/96105903?from_voters_page=true
  • https://blog.csdn.net/winterking3/article/details/106711850
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-05 20:22:40  更:2021-07-05 20:23:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 13:16:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码