大厂 Flink 面试 100 题


标准答案

Flink 是真正的流式计算引擎:

  • event-by-event
  • 非微批
  • 毫秒级延迟
  • 高吞吐
  • 支持状态管理

相比 Spark Streaming:

Spark Streaming:

复制代码
Micro Batch

Flink:

复制代码
Native Streaming

因此:

  • 延迟更低
  • 更适合实时风控
  • 实时指标
  • 实时推荐

标准答案

JobManager

负责:

  • 作业调度
  • checkpoint协调
  • failover

TaskManager

负责:

  • 执行 task
  • 管理 slot
  • state计算

Dispatcher

提交 job。


ResourceManager

资源管理。


标准答案

slot 是 TaskManager 中的资源执行单元。

例如:

复制代码
1 TaskManager
= 4 slots

slot 共享:

不同 operator chain 可共享 slot。


4. 什么是 Operator Chain?

标准答案

多个 operator 合并到同一个线程执行。

例如:

复制代码
source -> map -> filter

可能 chain 在一起。


好处

  • 减少线程切换
  • 减少序列化
  • 提升性能

标准答案

并行度来源:

1)env level

复制代码
env.setParallelism(4)

2)operator level

复制代码
map.setParallelism(2)

3)slot 数量限制


标准答案

Flink 本质:

复制代码
DAG

数据流图。

operator:

  • source
  • transform
  • sink

组成 pipeline。


标准答案

主要:

1)流式模型


2)Operator Chain


3)内存管理优秀


4)异步 checkpoint


5)本地状态管理


标准答案

1)Processing Time

机器时间。


2)Event Time

事件产生时间。

生产最常用。


3)Ingestion Time

进入 Flink 时间。

现在较少使用。


9. 为什么 Event Time 更重要?

标准答案

因为:

生产环境存在:

  • 网络延迟
  • 数据乱序
  • 重放

Event Time 更符合业务真实时间。


标准答案

通过:

复制代码
Watermark

控制事件时间推进。


11. Watermark 本质是什么?

高频。


标准答案

Watermark:

"当前认为某时间之前的数据已经基本到齐"

例如:

复制代码
watermark = 10:00

说明:

10:00 之前窗口可关闭。


12. Watermark 为什么会导致延迟?

标准答案

因为需要等待:

复制代码
allowed lateness

等待迟到数据。

Watermark 越保守:

  • 准确率越高
  • 延迟越大

13. 什么是 Late Data?

标准答案

事件时间:

小于 watermark 的数据。

例如:

复制代码
watermark=10:00
数据=09:58

属于迟到数据。


14. 如何处理迟到数据?

标准答案

allowedLateness

允许窗口再次更新。


side output

输出到旁路流。


标准答案

Flink:

  • 原生 state 管理
  • checkpoint
  • exactly-once
  • 本地 state

非常适合:

  • 实时统计
  • CEP
  • 实时画像

二、Checkpoint 与 Exactly Once(16~35)


标准答案

Checkpoint:

分布式一致性快照

用于:

  • 故障恢复
  • exactly-once

17. Checkpoint 原理是什么?

超高频。


标准答案

基于:

Chandy-Lamport

分布式快照算法。

通过:

复制代码
Barrier

在数据流传播。


18. Barrier 是什么?

标准答案

Barrier:

特殊标记。

表示:

复制代码
checkpoint 边界

19. Barrier Alignment 是什么?

标准答案

多输入流:

需要等所有 barrier 到齐。

例如:

复制代码
stream1 barrier 到了
stream2 没到

需要等待。


20. 为什么会发生 Barrier 对齐等待?

标准答案

因为:

不同流速不同。

导致:

复制代码
慢流阻塞

21. Unaligned Checkpoint 是什么?

标准答案

避免 barrier alignment。

直接:

复制代码
channel buffer 一起checkpoint

适合:

  • backpressure严重

22. Exactly Once 如何实现?

超高频。


标准答案

核心:

复制代码
checkpoint + state + source offset

同时保存。

恢复时:

一起恢复。


23. At Least Once 和 Exactly Once 区别?

标准答案

At Least Once

可能重复。


Exactly Once

不重复不丢失。


24. 两阶段提交如何实现 Exactly Once?

标准答案

Sink:

pre-commit

checkpoint 前预提交。


commit

checkpoint 成功后真正提交。


25. Kafka Sink 如何实现 Exactly Once?

标准答案

通过:

复制代码
transactional.id

Kafka transaction。


26. Checkpoint 为什么失败?

高频场景题。


标准答案

1)state 太大


2)网络问题


3)backpressure


4)sink阻塞


5)checkpoint timeout


27. 如何优化 Checkpoint?

标准答案

增量 checkpoint


RocksDB


checkpoint interval 调整


state TTL


28. savepoint 和 checkpoint 区别?

超高频。


标准答案

checkpoint

自动。

用于恢复。


savepoint

人工触发。

用于:

  • 升级
  • 迁移

29. savepoint 能否跨作业恢复?

标准答案

可以。

但:

  • operator uid 不能变
  • state schema兼容

30. 什么是增量 Checkpoint?

标准答案

只保存:

复制代码
复制代码
变化部分state

减少:

  • 网络IO
  • checkpoint时间

三、State 状态管理(36~55)


标准答案

Keyed State

keyBy 后使用。


Operator State

operator 级别。


32. Keyed State 有哪些?

标准答案

ValueState


ListState


MapState


ReducingState


AggregatingState


33. Keyed State 为什么必须 keyBy?

标准答案

因为:

state 按 key 分区。


34. Operator State 用于什么?

标准答案

适合:

  • source offset
  • broadcast state

35. Broadcast State 使用场景?

超高频。


标准答案

适合:

  • 配置动态下发
  • 实时规则
  • 小维表

标准答案

管理:

  • state存储
  • checkpoint

37. 常见 State Backend 有哪些?

标准答案

HashMapStateBackend


EmbeddedRocksDBStateBackend

生产主流。


38. RocksDB 为什么适合大状态?

超高频。


标准答案

因为:

state 存本地磁盘。

避免 JVM heap 过大。


39. RocksDB 缺点是什么?

标准答案

序列化开销


延迟高于 Heap


40. State TTL 是什么?

标准答案

状态过期机制。

避免:

复制代码
state 无限增长

41. State 为什么会爆炸?

标准答案

key无限增长


没有TTL


热key


42. 什么是热 Key?

标准答案

某个 key 数据量远超其他 key。

导致:

  • 数据倾斜
  • task负载不均

43. 如何解决热 Key?

标准答案

key打散


局部聚合


增加并行度


四、Window(56~70)


标准答案

Tumbling Window

滚动窗口。


Sliding Window

滑动窗口。


Session Window

会话窗口。


45. Tumbling 和 Sliding 区别?

标准答案

Tumbling

不重叠。


Sliding

可重叠。


46. Session Window 使用场景?

标准答案

用户行为分析。

例如:

复制代码
30分钟无操作
session结束

47. Window 为什么占用大量 state?

标准答案

窗口内数据需要缓存。


48. Window Join 为什么容易 OOM?

标准答案

因为:

双流窗口数据都要缓存。


49. 如何优化 Window?

标准答案

reduce/aggr 提前聚合


缩短窗口


state ttl


50. Window 什么时候触发?

标准答案

主要:

  • watermark
  • trigger

五、Kafka + Flink(71~85)


标准答案

checkpoint 时:

复制代码
复制代码
offset 一起保存

恢复时:

offset 回滚。


52. Kafka Rebalance 为什么影响稳定性?

标准答案

会导致:

  • 消费暂停
  • 重复消费
  • 延迟升高

53. Kafka 消息积压如何处理?

标准答案

增加 partition


增加 consumer


提升 sink性能


54. Kafka 为什么不能无限增加 partition?

标准答案

因为:

  • controller压力
  • 文件句柄
  • 网络开销

标准答案

看lag


看backpressure


看GC


看下游sink


六、生产问题(86~100)


标准答案

下游处理不过来。

导致:

复制代码
数据反向阻塞

57. 如何定位 Backpressure?

标准答案

Flink UI:

  • 红色严重
  • 黑色正常

58. Backpressure 常见原因?

标准答案

sink慢


网络


数据倾斜


GC


标准答案

state太大


window缓存


RocksDB内存


JVM参数不合理


标准答案

operator chain


并行度


RocksDB调优


async io


批量sink


61. 为什么会数据倾斜?

标准答案

key分布不均


热点数据


62. 如何做实时维表 Join?

标准答案

broadcast


async io


temporal join


63. Async IO 为什么重要?

标准答案

避免同步阻塞。

提升吞吐。


北京现在极高频。


标准答案

snapshot阶段

全量读取。


binlog阶段

增量同步。


65. CDC 为什么会导致抖动?

标准答案

snapshot 阶段压力大。


66. 实时数仓为什么需要去重?

标准答案

Kafka:

  • 重复消费
  • 重试

都会导致重复。


67. 如何做实时去重?

标准答案

state


Redis


bitmap


68. 什么是流批一体?

标准答案

同一套:

  • 存储
  • 元数据
  • SQL

同时支持:

  • batch
  • streaming

69. 为什么 Iceberg/Hudi/Paimon 很重要?

标准答案

支持:

  • ACID
  • schema evolution
  • streaming read/write

标准答案

降低开发门槛。

适合:

  • 实时ETL
  • 指标计算

七、高级架构题(加分)


71. 如何设计实时数仓?


72. 如何设计统一实时平台?


73. 如何做多租户隔离?


74. 如何做实时数据质量监控?


75. 如何做实时血缘?


76. 如何设计实时指标体系?



78. 如何设计动态规则引擎?


79. 如何实现实时画像?


80. 如何做 AI 实时特征平台?


八、北京大厂现在特别爱问的"灵魂题"


建议回答:

  • state膨胀
  • checkpoint抖动
  • backpressure传导

82. 你线上最难的问题是什么?

一定准备:

  • 排查过程
  • 指标
  • root cause
  • 优化结果

83. 为什么不用 Spark Streaming?


84. 为什么不用 Kafka Streams?


85. 实时和离线口径不一致怎么办?


86. 你如何保证数据一致性?


87. 如何做 SLA?


88. 如何做实时监控?


89. 如何做任务自动恢复?


90. 如何做灰度发布?


九、Leader / 架构师级别


91. 如何做流量治理?


92. 如何做成本优化?


93. 如何做资源隔离?


94. 如何做平台化?


95. 如何做低代码实时开发?


96. 如何做统一元数据?


97. 如何做统一权限?


98. 如何做多机房容灾?


99. 如何做 AI Agent 数据总线?


100. 未来实时计算的发展方向?

建议回答:

  • 流批一体
  • AI Native Data Platform
  • 实时 Feature Store
  • Vector Streaming
  • Agent Event Streaming

最后:北京面试真正的重点

现在北京的大厂/独角兽:

真正想招的是:

复制代码
复制代码
懂生产问题的人

而不是:

复制代码
复制代码
只会写API的人

所以你准备时:


一定重点准备:

1. 原理

  • checkpoint
  • barrier
  • watermark
  • state

2. 线上问题

  • OOM
  • backpressure
  • 延迟
  • 倾斜

3. 架构

  • 实时数仓
  • CDC
  • 流批一体

4. AI + 实时数据

这个会越来越重要。

相关推荐
humors22118 小时前
危急时刻的六条基本安全提示
大数据·程序人生
暴躁小师兄数据学院18 小时前
【AI大模型应用开发工程师特训】第01讲—AI在企业中的定位
大数据·python·ai·语言模型
名不经传的养虾人18 小时前
从0到1:企业级AI项目迭代日记 Vol.32|企业AI的隐形工程:登录、接管、发布、资产——一个都不能少
大数据·人工智能·ai编程·企业ai·多agent协作
跨境牛马哥18 小时前
2026 美客多(Mercado Libre)跨境运营实战:入驻、风控与新店运营经验
大数据
juniperhan18 小时前
Flink 系列第25篇:Flink SQL 集成 Hive 实践:流批一体下的实时数仓利器
大数据·数据仓库·hive·分布式·sql·flink
上海云盾-高防顾问19 小时前
公司上市审计安全包括哪些方面
大数据·安全
暴躁小师兄数据学院19 小时前
【AI大数据工程师特训笔记】第01讲:数据库基本概念
大数据·数据库·笔记
Moment19 小时前
面试官:上下文过长导致语义偏移,工程上怎么优化
前端·后端·面试
大大大大晴天19 小时前
为什么你的Flink SQL结果总不对?回撤流(Retract Stream)机制全解析
flink