终于要跟大家见面了,Flink 面试指南
面试,一个令人大多数同学头疼的问题,要么成功进入心仪公司,要么沮丧与其失之交臂。但是,如果能在面试前就能知道面试官将会问的问题,然后可以好好提前准备,这种感觉是不是特别棒?
之前社区帮大家汇总了目前 15 家重量级公司的招聘需求更新在社区招聘帖,也收到了很多同学的反馈:
“投了一堆简历,但是都没面试机会”
“面试官说是想招高阶人才”
“**哎,感觉像我这种毕业年限短,
公司又是小公司,本科也不太好的,找工作太难了**”
最后只能总结:
“我不优秀,我连面试机会都没有”
也太南南南了!
那么究竟怎么积累技术实力,成为 Flink 高级开发,拿下心仪公司的 offer 呢?小松鼠征集了 Flink 用人主管的核心诉求并提供一份超级清晰、实用的学习路径。虽然我们都不会读心术,但破解面试难题也有思路可寻!
Tips:2020 Flink 最新招聘信息查看请见下方链接,内推或有招聘需求的公司可联系小松鼠(微信ID:Ververica2019)投递 JD~
2020 最新 Flink 招聘岗位汇总:
https://juejin.im/post/5df9e25fe51d4557f5450274
01 了解用人主管的需求
在收集招聘信息时小松鼠了解到用人主管的核心需求以及面试了部分同学之后的感受,总结下来主要分为以下方面:
- 经验都偏少,缺乏复杂场景的历练
- 在用 Flink 做数据开发,但没有底层修改经验
- 想招比较高阶的对 Flink 底层有深入研究的同学,但是高阶的太难找
- 需要有深入研究、改造经验的也可以,独立完成问题排查与任务调优
请注意关键词!「复杂场景历练」、「底层修改经验」、「高阶」、「问题排查与调优」,这是当前大多数岗位对 Flink 开发同学的预期,相当于划重点呐!除了解用人主管的核心需求外,我们也需要结合自身基础,找对合适的岗位方向。
02 找对岗位方向
小松鼠总结了市面上大多数招聘内容,对这些岗位进行分析并整合,可以看到如下表格内容。总体上分为3个方向:

(不完全统计,仅供参考)
众所周知,平台开发或底层引擎开发都需要对 Flink 有钻研精神,需要持续专注地深耕,对技术深度、技术原理掌握甚至是源码能力要求都较高。
相对而言,业务类的开发则更关注具体应用场景,大多是在平台的基础上进行业务场景的应用开发,对底层、源码的要求相对较低。
总体上,无论选择哪种技术方向,扎实的语言功底都是基础,而对开源社区的贡献、对 Flink 生态有深入了解等都将成为 blingbling 的加分项。
03 从小白到 Flink 高级开发,应该掌握哪些技术?
如果你了解到自己与用人主管的核心需求存在哪些差异,或者有自己倾向的岗位方向,那么恭喜你已成功完成心理建设。第三部分,小松鼠邀请了 Apache Flink PMC 程鹤群(军长)来帮大家解决“从小白到 Flink 高级开发,应该掌握哪些技术?”这个核心问题,此处感谢 Apache Flink PMC 伍翀(云邪)的反馈与建议。
首先,送你一份 X-mind!公众号后台回复关键字「面试」,可以下载 PDF 版本~

然后,我们来了解这份思维导图的构成以及如何使用。
1.专治无从下手
根据 Flink 相关招聘岗位要求,我们将重点分为以下部分:
- 大数据基础理论
- SQL & Table
- Runtime
- Flink 生态
- Flink 实战
整合了当前 Flink 面试岗位中涉及的绝大多数知识点,并分为五大板块。除了 SQL & Table、Runtime 等硬核内容外,生态以及实战是面试中需要重点关注的内容。
2.没有问题的思维导图不是好题库
- 从问题开始,每块内容都以问题的形式帮你回顾可能考察的知识点。
- 不仅是 Flink,思维导图对面试中可能涉及的数据基础理论也整理成问题供大家参考。
- 难易分明,Flink 生态以及实战部分不仅是重点也是大部分难点所在,脑图中相应部分也用笑脸标示,难易程度一眼分明。
希望这份思维导图能够对你有所帮助!大家可以结合之前的 Flink 知识图谱一起学习,效果更佳哦~
Flink 社区知识图谱:
https://ververica.cn/developers/special-issue/
04 跟 5 位大厂同学聊了聊,他们分享了 10 道真题
面试跟从小到大我们经历的大大小小的考试异曲同工,虽然可以临时抱佛脚,可最核心最重要的还是技术实力。下面分享 10 道真题,都来自于生产环境经验丰富的大厂同学,希望对大家面试有所帮助。此处感谢五位同学!
BTW,以下真题仅供大家参考,开拓思路,切不可本末倒置,将真题作为面试准备的唯一法宝。
▼ 真题集 ▼
1.阐述 Flink 如何处理反压,相比 Storm,Spark Streaming 提供的反压机制,描述其实现有什么不同?
2.阐述流处理引擎提供的三种数据处理语义,解释 Flink Checkpoint 机制如何保证 Flink 程序结果的 Exactly-Once 语义,描述如何通过两阶段提交协议提供端到端的 Exactly-Once 保证?结合 Kafka 如何构建端到端的 Exactly-Once 处理?
3.阐述 Flink 提供的容错机制,解释分布式快照 Chandy Lamport 算法逻辑,剖析 Flink Checkpoint 具体实现流程?
4.如何处理 Flink 作业频繁重启问题?
5.如何优化大状态的 Flink 作业?
6.如何排查 Flink Checkpoint 超时问题?
7.如何处理 Flink 作业中的数据倾斜问题?
8.Flink 反压机制,如何排查反压瓶颈在哪,及如何处理反压问题?
9.哪种 join 可以满足单个流断流的时候仍然能够保证正确的 join 到数据?
10.watermark 是怎么生成和传递的?
以上。真题集部分还有后续,下期更新~我们的目标是“Flink 学得好,工作容易找”!无论您是面试者想要帮忙内推还是企业用人主管想要招聘,欢迎联系小松鼠(微信ID:Ververica2019)。
终于要跟大家见面了,Flink 面试指南的更多相关文章
- 推荐一份 Google 面试指南
经常有不少读者在我公众号后台留言,说自己还是应届毕业生,缺乏工作经验与项目经验,不知道如何才能通过面试? 其实,项目经验固然重要,但是企业也知道,对于应届毕业生,是很难有拿得出手的项目经验出来的,毕竟 ...
- 毕业季offer怎么拿?收下这份非典型求职面试指南
摘要:求职面试莫慌,先自我评估一下 ,华为云专家手把手为你指导. 本文分享自华为云社区<毕业季offer怎么拿?收下这份非典型求职面试指南>,原文作者:技术火炬手 . 又是一年毕业季,对于 ...
- 30K入职腾讯,全靠这份606页的Android面试指南
前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...
- Servlet+JSP及Tomcat常见面试题(面试必备)
1. 什么是servlet? servlet是用来处理客户端请求并产生动态网页内容的java类 2. Tomcat的缺省端口是多少,怎么修改? a) 默认端口号是8080 b) ...
- Java核心技术及面试指南的视频讲解和代码下载位置
都是百度云盘,均无密码 代码下载位置: https://pan.baidu.com/s/1I44ob0vygMxvmj2BoNioAQ 视频讲解位置: https://pan.baidu.com/s/ ...
- Java核心技术及面试指南 设计模式部分的面试题总结以及答案
8.6.4.1请实现一个线程安全的单例模式. 1 public class MailListReader { 2 private static MailListReader ...
- BATJ面试指南
Java并发编程面试题汇总 线程 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源).java.lang.Thre ...
- Java核心技术及面试指南 JDBC部分的面试题总结以及答案
5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字 ...
- Java核心技术及面试指南 数据库方面的面试题归纳以及总结
5.1.7.1 事务的四大特性是什么? ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库 ...
- Java核心技术及面试指南 集合部分总的面试题归纳以及答案
3.6.1ArrayList和LinkedList有什么差别?在哪种场景里应当用ArrayList(或LinkedList)? 大家如果学过数据结构,这个问题不难回答:前者是基于数组,数组比较擅长索引 ...
随机推荐
- Git | Git Server 搭建,在自己的服务器上进行 git server 搭建
系列文章目录 目录 系列文章目录 前言 操作 1. 创建 git 用户 2. 创建 .ssh 目录 3. 自定义仓库的根目录 4. 在服务器上创建个裸仓库 5. 手动配置一个公钥 6. 在本地测试一下 ...
- 各种O总结及阿里代码规范总结
首先梳理下POJO POJO包括 DO/DTO/BO/VO(所有的POJO类属性必须使用包装数据类型.) 定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值. controller使 ...
- CMake基本配置与注意事项
CMake基本配置与注意事项 目录 CMake基本配置与注意事项 CMake message打印日志 find_library查找一个NDK工具中的库 添加多个源文件 CMake中引用其他的 CMak ...
- .NET Emit 入门教程:第一部分:Emit 介绍
前言: Emit 是开发者在掌握反射的使用后,进阶需要的知识,它能显著的改善因反射带来的性能影响. 目前能搜到的 Emit 的相关文章,都是一篇系列,通常推荐对照着反绎后的 IL 编写 Emit 代码 ...
- 记录--虚拟 DOM 和实际 DOM 有何不同?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 本文我们会先聊聊 DOM 的一些缺陷,然后在此基础上介绍虚拟 DOM 是如何解决这些缺陷的,最后再站在双缓存和 MVC 的视角来聊聊 ...
- 记录--手把手教你,用electron实现截图软件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 因为我们日常开发项目的时候,需要和同事对接api和文档还有UI图,所以有时候要同时打开多个窗口,并在多个窗口中切换,来选择自己要的信 ...
- 记录--vue刷新当前页面
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 项目当中如果做新增/修改/删除等等操作通常情况下都需要刷新数据或者刷新当前页面. 思路 (1)如果页面简单,调用接口刷新数据即可. ...
- 超详细的彻底卸载VMware虚拟机方法
一.在卸载VMware虚拟机之前,要先把与VMware相关的服务和进程终止 1.在windows中按下[Windows键],搜索[服务]设置,然后打开: 2.找到以VM打头命名的服务,然后右键停止这些 ...
- 大模型落地实战指南:从选择到训练,深度解析显卡选型、模型训练技、模型选择巧及AI未来展望—打造AI应用新篇章
大模型落地实战指南:从选择到训练,深度解析显卡选型.模型训练技.模型选择巧及AI未来展望---打造AI应用新篇章 0.前言大模型发展史 早期阶段(1950s~1980s) 在1950年代初期,人们开始 ...
- MongoDB4.0.11服务没有响应控制功能解决办法
如图 MongDB安装好后启动服务失败 解决办法 进入到你的MongDB bin目录下执行 mongod.exe --remove --serviceName "MongoDB" ...