初识 Flink

本文介绍了Apache Flink的基本概念,包括其作为有状态数据流处理引擎的特性,以及Flink的架构和程序结构。Flink的运行时包括了Checkpoint、State和Time等核心概念,其API层提供了DataStream、DataSet、Table和SQL接口。Flink程序由流和转换构成,支持并行数据流处理。此外,文章还讨论了Task和Operator Chain,以及Flink如何实现统一的流处理与批处理。
摘要由CSDN通过智能技术生成

Flink

Flink 基本介绍

  • Flink概述 官网

    分布式的计算引擎  
    支持批处理 ,即处理静态的数据集、历史的数据集
    支持流处理 ,即实时地处理一些实时数据流
    支持基于事件 的应用【比如说滴滴通过 Flink CEP 实现实时监测司机的行为流来判断司机的行为是否正当】  
    
  • Apache Flink – Stateful Computations over Data Streams

在这里插入图片描述

Stateful Computations over Data Streams ,即数据流上的有状态的计算。

  • Data Streams ,Flink认为 有界数据集 是 无界数据流 的一种特例,所以说有界数据集也是一种数据流,事件流也是一种数据流。 Everything is streams ,即Flink可以用来处理任何的数据,可以支持批处理、流处理、AI、MachineLearning等等。
  • Stateful Computations,即 有状态计算 。有状态计算是最近几年来越来越被用户需求的一个功能。比如说一个网站一天内访问UV数,那么这个UV数便为 状态 。Flink提供了内置的对状态的一致性的处理,即如果任务发生了Failover,其状态不会丢失、不会被多算少算,同时提供了非常高的性能.
无界流 :意思很明显,只有开始没有结束。必须连续的处理无界流数据,也即是在事件注入之后立即要对其进行处理。不能等待数据到达了再去全部处理,因为数据是无界的并且永远不会结束数据注入。处理无界流数据往往要求事件注入的时候有一定的顺序性,例如可以以事件产生的顺序注入,这样会使得处理结果完整
有界流 :也即是有明确的开始和结束的定义。有界流可以等待数据全部注入完成了再开始处理。注入的顺序不是必须的了,因为对于一个静态的数据集,我们是可以对其进行排序的。有界流的处理也可以称为 批处理 。
  • 其他特点:
    • 性能优秀
    • 高可扩展性
    • 支持容错
    • 纯内存式的计算引擎,做了内存管理方面的大量优化
    • 支持eventime的处理
    • 支持超大状态的Job(在阿里巴巴中作业的state大小超过TB是非常常见的)
    • 支持exactly-once 的处理

Flink 架构

Flink基石

在这里插入图片描述

  • Checkpoint

    Checkpoint 机制,这是Flink最重要的一个特性。Flink基于 Chandy-Lamport 算法实现了一个分布式的一致性的快照,从而提供了 一致性的语义 。Chandy-Lamport算法实际上在1985年的时候已经被提出来,但并没有被很广泛的应用,而Flink则把这个算法发扬光大了。
    
  • State

    Flink为了让用户在编程时能够更轻松、更容易地去 管理状态 ,还提供了一套非常简单明了的State API,包括里面的有ValueState、ListState、MapState,近期添加了BroadcastState,使用State API能够自动享受到这种一致性的语义。
    
  • Time

    Flink实现了 Watermark 的机制,能够支持基于事件的时间的处理,或者说基于系统时间的处理,能够容忍数据的迟到,容忍,乱序的数据。
    
  • Window

    流计算中一般在对流数据进行操作之前都会先进行开窗,即基于一个什么样的窗口上做这个计算。Flink提供了开箱即用的各种窗口,比如 滑动窗口 、 滚动窗口 、 会话窗口 以及非常灵活的 自定义的窗口 。
    

组件栈

Flink是一个分层架构的系统,每一层所包含的组件都提供了特定的抽象,用来服务于上层组件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值