整体架构,这张图算是老生常谈了,不过确实很经典把所有大的概念和细节都展示出来了

1,checkpoint是在JM段做的,容错和重启也是在JM做的

2,Client 会把任务转换成streamGraph和JobGraph,JM端会生成ExecutionGraph然后分发给TM去执行

3,checkpoint可以从最近的一次重启任务,只能保证不丢数,不能保证只处理一次,实际上是至少处理一次,所以还需要结合两阶段提交去解决

4,JM去调度作业的时候需要去资源管理器ResourceMananger去申请资源,然后再去分发给TM执行

5,windowTrigger的几种处理结果

1)continue 继续不做任何操作

2)Fire  触发计算,处理窗口数据

3)Purge  触发清理,清理窗口里的数据

4)Fire+Purge  触发计算+清理数据

6,waterMark理解为deadline更合适一下,用于数据延迟处理,乱序等问题,双流join

7,延迟严重需要用到allowedLateness (允许迟到机制/旁路输出)

8,state状态的概率,面试官问道这个问题我会懵了一下,现在我帮大家梳理下应该从哪几个点怎么回答一下

1)总体来说,state状态就是flink保持中间结果和缓存一些数据

2)如果一次计算不依赖上下游,则称为无状态计算,否则是有状态计算

3)分为 原始状态(用户自己管理) 托管状态(flink系统管理)

4)根据是否有key分为   keyedState(跟key绑定)   OperatorState(整个算子级别的只支持ListState)

5)广播状态,广播出去算子本地存储,必须是MapState

6)三张存储方式 MemoryStateBackend   FSStateBackend   RocksDB

7)持久化策略:增量持久化  全量持久化

8)状态过期清理策略 StateTtlConfig

9,checkpoint和savepoint本质没区别,cp是系统每隔一段时间做的快照,用于任务容错重启,sp是用户定义的一个快照,用于比较大的调整比如系统升级,ABtest等

10,checkpoint里保存的是什么,如果是kakfa处理数据,则每次checkpoint提交成功即为offset的一次提交

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐