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)。
点击下方链接可查看 2020 社区最新招聘信息汇总~
https://juejin.im/post/5df9e25fe51d4557f5450274
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【科学脱口秀】EB级计算平台调度系统 “愚公” : 实现跨地域的数据和计算调度
伏羲(Fuxi)是十年前最初创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute,分布式调度 Fuxi),当时的设计初衷是为了解决大规模分布式资源的调度问题(本质上是多目标的最优匹配问题)。 随阿里经济体和阿里云丰富的业务需求(尤其是双十一)和磨练,伏羲的内涵不断扩大,从单一的资源调度器(对标开源系统的YARN)扩展成大数据的核心调度服务,覆盖数据调度(Data Placement)、资源调度(Resouce Management)、计算调度(Application Manager)、和本地微(自治)调度等多个领域,并在每一个细分领域致力于打造超越业界主流的差异化能力。 MaxCompute作为阿里经济体的大数据计算平台,每天运行着数以千万计的作业,处理EB级别的数据,这些作业和数据分布在全球各个数据中心的不同集群,当作业运行和输入数据不在同一个集群中时,称之为跨集群数据依赖。随着MaxCompute业务的高速发展,跨集群依赖量也急速增长。复杂的业务依赖关系不可避免的会产生大量的跨数据中心的网络传输,而跨数据中心的网络具有带宽小,延迟高,稳定性低的特点...
- 下一篇
Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!
在2020年,你的数据仓库和基础设施需要满足哪些需求? 我们总结了几下几点: 首先,当下的企业正快速转向更实时化的模式,这要求企业具备对线上流式数据进行低延迟处理的能力,以满足实时(real-time)或近实时(near-real-time)的数据分析需求。人们对从数据产生到数据可用之间延迟的容忍度越来越低。曾经几个小时甚至几天的延误不再被接受。用户期待的是几分钟甚至几秒钟的数据端到端体验。 第二,数据基础设施需要具备同时处理线上和线下数据的能力,两种模式在实际应用中都不可或缺。除了上面提到的流处理,用户也需要批处理做即席查询(ad-hoc query)和数据挖掘。数据基础设施不应该要求用户二选一,而应该提供两个选项并且都是高质量的。 第三,数据工程师、数据科学家、分析师和运维人员都在渴望一套统一的数据技术栈,以便更轻松的使用。大数据领域的技术栈已经支离破碎很多年了,企业可能有一套流处理系统,一套批处理系统,一套线上数据分析系统。这基本都是由于当年流处理框架不够成熟而被迫采用过时的 lambda 架构造成的问题。现在不同了,流处理已成为主流,终端用户不必再学习多种技能和维护各种复杂的工...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- 设置Eclipse缩进为4个空格,增强代码规范
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境