其他分享
首页 > 其他分享> > Flink-core小总结

Flink-core小总结

作者:互联网

Flink-core小总结

1. 实时计算和离线计算

1.1 离线计算

1.2 实时计算

1.3 数据时效性越高,价值就越高

2. flink和sparkstreaming

2.1sprk streaming

3. flink代码

3.1 source

读取文件,读取socket,基于集合,自定义source(SourceFunction|KafkaSource),kafkaSource

3.2 transformation算子

map,flatmap.filter,union,key

  1. 可以用于DataStream
  2. 可以用于keyBy之后,可以对于同一个可key的数据做处理
  3. 可以用于window之后,可以对一个窗口内地数据做处理

3.3 sink

print,写入文件,写入socket(测试),自定义sink(SinkFunction,Rich function),kafkaSink

4. 架构

4.1 jobManager

4.2 taskManager

5. 环境搭建

5.1 local

5.2 独立集群

6. 并行度

6.1 共享资源

6.2 并行度的设置

7. 事件时间

  1. 数据中自带了一个时间
  2. 使用数据中的时间字段进行计算,可以反应数据真实发生的情况
  3. 使用事件时间存在乱序的解决办法:flink通过将水位线前移,避免数据乱序导致数据丢失

8. 窗口

8.1 时间窗口

8.2 会话窗口

8.3 统计窗口

9. checkpoint

checkpoint时flink的容错机制

flink通过checkpoint将计算过程的状态持久化到外部系统中,如果任务执行失败,可以从checkpoint的位置恢复保证数据的完整性

checkpoint流程:

  • Jobmanager会定时的向source task 发送trigger
  • source task 在数据流中安插barrier
  • source task 将barrier 向下游传递,同时自己会同步做快照,并异步将状态持久化到hdfs中
  • 将下游task收到上游所有的实例的barrier后就会作快照
  • 当所有的task处理完同一次的checkpoint之后,一次checkpoint完成
  • jobmanager会删除掉旧的checkpoint文件,保留最新的

10. state状态

可以理解为flink计算过程中产生的中间结果

  • valueState
  • listState
  • mapState
  • reducingState aggState

状态会被checkpoint持久滑倒hdfs中,如果任务执行失败,还可以挥复

11. exactly once

11.1 kafka端

标签:总结,core,Flink,窗口,flink,checkpoint,task,计算,数据
来源: https://www.cnblogs.com/atao-BigData/p/16530848.html