秋招第十一弹:沐瞳科技一面-大数据平台开发工程师
写在最前:秋招以来一直在冲,因为事情比较多,对于笔试面试一直没有复盘,现在靠仅存的记忆把面试的一些问题记录下来,尽可能记录出能回忆到的问题,但可能记的不是很全。
时长:40min
-
自我介绍
-
介绍一下项目
因为面试时候比较晚,觉得是在刷kpi,心态比较摆烂,自我介绍没有好好介绍,让我介绍项目时候也是随便说说,我随便说了做的视频播放的项目
-
视频播放项目具体是怎么实现的?
我自寻死路,想要摆烂,没想到反向摆烂,我说说不太好说,能写出来就比较好理解。面试官马上开了一个代码考核界面,让我写
没有办法,那么久的项目实在想不起来,就临时发挥,给面试官手撕了视频播放归因的代码,写的比较简单,因为很多特殊情况我没有写进去
-
根据我写的代码,问我业务过程、主键、维度是怎么设计的
因为看完代码,面试官大概知道是什么样的数据了,他心目中对数据模型有了自己的思想,就问我模型当时怎么设计的
-
spark源码有了解吗?你写的这个代码有几个job?几个stage?
这种源码的考察方式很独特,编都没法编,就仔细的分析了一下代码,把行动算子和shuffle算子罗列了一下,和面试官说了job和stage的数量,顺遍说了下job和stage底层是怎么划分的,拖延下时间
-
spark和hadoop的区别?
我没有直接回答,只说了spark和mr的shuffle区别,和执行流程的区别
-
hive sql怎么转换成的mr
-
java内存模型了解多少?
-
java的list讲解一下?
我提到了线程安全和线程不安全,问我什么是安全什么是不安全?为什么?不安全会怎么样?怎么解决?为什么不直接全用ArrayList?
-
java的线程底层怎么实现的?有几种线程创建方式?
-
进程和线程的区别?什么是线程私有的?
-
怎么查看一个java进程的运行占用?
-
如果一个线程占用资源很大,linux怎么找到它?
-
top命令可以查看哪些信息?
-
linux内核介绍一下?
-
http和RPC的区别?
-
写过哪些接口?用什么写的?
-
maven怎么解决依赖冲突问题?
-
flink cdc了解吗?
-
kafka的消费者和生产者有什么关系?还有topic?
-
反问
问了工作内容和平时主要用什么语言?
总结:因为是平台开发,对于后端开发的能力确实有限,java的问题回答的并不好,但是在问spark源码时候的方式很独特,可以真实的去考虑sql是怎么提交的,比着回答八股文,对了一些灵活性,而且分析代码得出结论的方式更能学到东西,总体来说,虽然java的问题回答的一探糊涂,但是大数据相关的面试经验又多了一些。