Flink入门

在这里插入图片描述
1.基本概念:
Flink是一个面向分布式数据流处理和批处理数据的开源计算平台,能够基于同一个flink运行,可以提供流处理和批处理两种类型的功能.
提供的SLA(Service-Level-Aggreement)是不同的:
流处理一般需要支持低延迟,Exactly-once保证 ,输入数据流是无界的
批处理支持高吞吐,高效处理.输入的数据流是有界的.
2):flink程序是由Stream和Tranformation组成;stream是一个中间结果数据,而Transformation是一个操作他对一个或多个输入Stream进行计算处理,输出一个或多个Stream
3)flink程序被执行的时候,他会被映射为Streaming Dataflow,一个Streamming Dataflow是由一组Stream和Transformation Operator组成,它类似于一个Dag图,再启动的时候从一个或多个Source Operator开始,结束于一个或多个Sink Operator。

2.flink流处理特征:
1:支持高吞吐,低延迟,高性能
2:支持带有事件时间的窗口操作
3:支持有状态计算的Exactly-once语义
4:支持高灵活的窗口
5:Backpressure功能的持续流模型
6:轻量级分布式快照实现的容错
7:运行时同时支持批处理和流处理
8:JVM内部实现了自己的内存管理
9:支持迭代计算
10:程序自动优化:避免特定情况下shuffle,排序等昂贵操作,中间结果有必要进行缓存

3.架构:
Flink以层级式系统形式组件其软件栈,不同层的栈建立在其曾基础上,并且各层接受程序不同层的抽象形式。
1):运行层以JobGraph形式接收程序,JobGraphh就是一个一般化的数据流图(data flow),拥有任意数量的Task来接受和产生data stream
2):DataStream API 和DataSet API都会使用单独编译的处理方式生成JobGraph。DataSet API使用optimizer来决定针对程序的优化方法,而DataStream API则使用stream builder来完成该任务
3):在执行JobGraph时,Flink提供了多种候选部署方案(local,remote,YARN等)
4):Flink随时一些产生Dataset或DataStream API程序的类库和API:处理逻辑表查询的Table,机器学习的FlinkML,图像处理的Gelly,复杂事件处理的CEP。
5):并行的数据流
一个Stream可以被分为多个Stream分区,一个Operator可以分为多个Operator Subtask,每一个Operator Subtask是在不同的线程中独立执行。
一个Operator的并行度,等于Operator Subtask的个数,一个Stream的并行度总是等于生成它的Operator的并行度。
5.1):one-to-one模式:
map()的Subtask看到数据流中记录的顺序,与Source中看到的记录顺序是一致的。
5.2):改变了数据流的分区,上游的Subtask向下游的多个不同的Subtask发送数据,改变了数据流的分区,这与实际应用所选择的的Operator有关系。
6):时间
flink使用WaterMark衡量时间,WaterMark携带时间戳t,并被插入到stream中。
1):Watermark的含义是所有时间t’<t的事件都已经发生
t’代表实际中事件所用的事件时间
t 代表之前预定的事件时间

4.自定义窗口

1):window :创建自定义窗口
2):trigger:自定义触发器
3):evictor:自定义的过滤器(类似于窗口中的过滤器)
4):apply:自定义方法

5.容错
Barrier机制:
1):由barrie来划分快照(Snapshot)
在该barrie之前出现的记录属于该Barrier对应的Snapshot
在该barrier之后出现的记录属于下一个Snapshot
2):同一时刻可能会产生多个Snapshot
3):一个中间Operator接收到一个Barrier后,它会发送Barrier到属于该Barrier的Snapshot的数据流中,等到Sink Operator接收到该Barrier后会向CheackpointCoordinator(检查协调)确认该Snapshot,直到所有的Sink Operator都确认了该Snaptor,才被认为完成了该Snapshot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值