一面(一个小时):
Q:1.自我介绍~
Q:2.介绍下第一个项目(大数据平台的升级 hadoop的升级)
Q:3.hadoop为什么要从2.x升级到3.x?
Q:4.不停机升级过程中有哪些不兼容的地方(namenode的editlog、datanode的块布局等),你是怎么解决的,社区是怎么解决的,版本回滚会有啥问题?
Q:5.hdfs写数据过程,写的过程中有哪些故障,分别会怎么处理?dataqueue和ackqueue如何交互的?ackqueue中的数据如何重新放回到dataqueue中?如何保证有序?写数据的过程中是一个个package写入并确认成功后再写下一个吗?不过不是,是怎么写的,除了错误如何恢复的?
Q:6.改过yarn和hdfs的哪部分源码吗?为什么这样改?聊聊你的改的是哪个类?效率怎么样?(我这边改过hdfs中datanode退役相关模块的代码和yarn中parent类中一些代码)
- 总结: 1面问的东西比较细,主要是考察了hdfs的源码细节和自己改动的地方,没有超过简历的范围,但是深度比较大。算法题不让使用现成的结构,写起来比较麻烦,面试官还是比较有耐心的。
二面(1个小时):
Q:1.自我介绍
Q:2.聊了一下过往项目,问的很细,很多
Q:3.聊聊 yarn是如何保证数据一致性的(CAP),主要问的resourcemanager
Q:4.聊聊hdfs的数据一致性和租约管理以及RBF
Q:5.说下kafka你知道的东西
Q:6.说下raft、zab和paxos
Q:7.说下JVM中复制算法和标记清除算法、标记整理算法的区别,你分析下为什么复制算法不能用到老年代,有啥问题等
Q:8.说下想来字节的原因
- 总结:面试官很nice,很有激情,问题还好,准备足了,应该不难,只是挺考验对知识的掌握度以及对社区最近发展的关注情况。
三面(一个小时)
Q:1.没有自我介绍,是公司创始人和人力负责人的面试。
Q:2.你在当前公司的工作,以及时间安排。
Q:3.说下kafka你平时杂用的,都了解哪些
Q:4.你有啥想问的,前两面面试官考察的挺细的了,我就不问啥了,你有啥想问我的。
- 总结:面试问的都很基础,也很深入,简历的东西写上去了,一定要会,而且要有自己的思考。平时要总结以及了解社区最新内容发展的方向等。还有一定要代码工程熟练,不然真的过不去。