大数据开发面经(深信服、美团、猿辅导。。。)
本人双非本科,说实话在校招中真的没什么竞争力,基础知识和算法还算比较扎实,面试的是大数据开发工程师,鉴于牛客上对大数据开发工程师的面经比较少,所以我分享一波。
首先还是非常感谢牛客这个平台的,在里面获取了很多的面经,也刷了很多题,对我在秋招的道路上有很大的帮助。
目前拿到了两个确定offer:映客直播,深信服(小公司就不说了)。
面试过的公司有:映客直播,深信服,美团点评,猿辅导,马蜂窝,58同城,随行付,途家,明略科技,京北方,剩下的想不起来了,明天还要面奇安信
闲言少叙,下面开始分享面经:
映客直播(1面+2面+HR):
一面:
首先自我介绍说一下项目吧
我说了挺长时间 从项目描述 项目内容 优势 立意 还有具体实现 优化好几个层面上说
我看你有两个项目 上面是第一个 那你再说说第二个
我说第二个我只负责用mapreduce进行数据分析
那我看你开发环境上也写了spark啊?
我说有别人负责spark模块 但是我也参加了一点
第一个项目投入运营了吗?
第二个项目呢?
那在运营中有遇见过高并发吗?怎么解决的?有内存爆掉的情况吗?
你对mapreduce了解多少,对shuffle了解多少?
hive的UDF怎么实现?
有什么问题想问我?
一面结束 引导员给我领到二面候场区
二面:
自我介绍吧说一下项目吧
mysql索引实现原理 B+树和B树的区别
spark有几个模块 你最喜欢用哪个 每个都干过什么
hbase的存储机制和扫描机制 如何调优?
如何用sql来操作hbase?
JVM了解多少 内存模型说一下
G1垃圾回收器讲一下原理
给我讲一下zookeeper是什么 说一下***机制 如果突然leader挂了怎么重新***(这个前几天正好美团面试问到了,我答得还不错)
给你出个算法吧 给你一个字符串ip地址 需要把他转换成int类型 然后要再能转回来
有什么还要问我的吗?
过了一会他就去找引导员了 跟引导员说了一些之后引导员让我HR面试候场(我当时真的太激动了)
二面结束
HR面:
照常自我介绍你认为你跟别人相比你的优势是什么?
你目前有几个offer了?
你的期望薪资是多少? 我说年薪13-14万
你为什么要选择映客直播? 你将来打算在什么行业领域工作? 比如金融,娱乐还是***机关?
之后还唠了很多,给我的感觉就是HR面的时候一定要会和HR唠嗑,你要让HR听到他想听到的东西。
最后HR让我稍等一下,跟二面面试官唠了一会,又跟引导员唠了一会。
然后就拿到了offer直通卡
最后总结:自己了解的还是太少,一定要继续学习更多的知识!
最后总结:自己了解的还是太少,一定要继续学习更多的知识!
猿辅导(一面):
两点准时开始 面试官是个小姐姐
时长一个小时
自我介绍
说一下项目。
你在项目里用了kafka是吗 说一下kafka的优势
你说你用过hive是吧 写两个hivesql
1、table a
class sujectid studentid score
每个班每个学科前三名学生id
2、table b
dt channel money
收入表 记录每天每个渠道收入的总值
baidu渠道累计收入超过10w的日期是在哪天?
往hdfs里put文件时 hdfs都做了什么?
你是软件工程专业的是吗 学过算法吧 来一道算法题做做
a='abcdsfasdfa'
b='abcsdfews'
求两个字符串的公共子串最大长度?
3
我不是太会,就跟他说我可以用动态规划求一个数组的不连续递增子串
她说也行 我就把代码给他写出来了
讲讲吧
面试结束了 你有什么问题要问我吗
我忘了我问啥了
总之面试官是个小姐姐,气氛比较轻松,虽然我不是大佬,不过相对紧张度来说还是比较轻松的。
总结:好好学学算法吧 好好学学算法吧 好好学学算法吧。。。。。。。
时长一个小时
自我介绍
说一下项目。
你在项目里用了kafka是吗 说一下kafka的优势
你说你用过hive是吧 写两个hivesql
1、table a
class sujectid studentid score
每个班每个学科前三名学生id
2、table b
dt channel money
收入表 记录每天每个渠道收入的总值
baidu渠道累计收入超过10w的日期是在哪天?
往hdfs里put文件时 hdfs都做了什么?
你是软件工程专业的是吗 学过算法吧 来一道算法题做做
a='abcdsfasdfa'
b='abcsdfews'
求两个字符串的公共子串最大长度?
3
我不是太会,就跟他说我可以用动态规划求一个数组的不连续递增子串
她说也行 我就把代码给他写出来了
讲讲吧
面试结束了 你有什么问题要问我吗
我忘了我问啥了
总之面试官是个小姐姐,气氛比较轻松,虽然我不是大佬,不过相对紧张度来说还是比较轻松的。
总结:好好学学算法吧 好好学学算法吧 好好学学算法吧。。。。。。。
马蜂窝(一面+二面):
一面:
之前的都是面试完了写过面经的 这个因为时间比较近没来得及写面经,得回忆一下。
(记得的)
自我介绍
日常问项目
代码块,静态代码块,构造器的执行顺序
sql题:字段是 用户id 日期 PV
求每个用户PV量最大的那天的日期和累计到那天的所有PV量
要求输出字段格式为:用户id 最大PV那天的日期 累计到那天的PV量
mapreduce的shuffle机制及其优化
介绍一下Kafka
Java线程池有几个类型 有一个参数是拒绝策略有几个参数
mapreduce程序题:还是上面的那个字段,要求求出每个用户的最早登录日期和最晚登录日期
考点是Mapper类中的setUp方法和clear方法
二面:
自我介绍
问项目
数据量?上线运营了吗?
测试过程中出现过非常大的bug吗?
团队之间怎么沟通的?
聊得都挺开心,结果给我pass了。
之后竟然说我这个项目跟他们实际工作不对口,说他们的数据研发是针对机器学习的,我研究的这些数据虽然说实际利益比较大,但是不跟他们研究的一样。(莫名其妙,我这种数据都能研究,你那个东西跟这个不就是数据不同吗?难道是用的工具不一样?看你要求里的东西就跟我项目上的一样啊)
总结:说明我数据研发的东西还有没接触到的一部分,以后要更加努力。
美团点评(一面):
首先自我介绍 之前自己准备过模板 所以说的还行
讲项目
flume的管道是用的哪个 我说用的内存
他说如果flume突然崩掉怎么办 重启之后是重新输入flume吗
我说设置一个偏移量 他问我怎么设置 我说不会。。 flume应该有对应的api吧。。。
他说如果内存中的数据呢 不是断电就没吗? 其实就是想问我管道的另一种设置方式 文件方式
听你说用了kafka,为什么不用flume直接接hbase呢?
kafka为什么低延迟高吞吐? 哪些特点? 原理说一下
我看你写了会hbase 说一下他的优点 他跟mysql有什么区别
列式存储的特点说一下
说一下事务的隔离级别(表示我只会事务的特点 隔离级别。。。。。听都没听说过)
熟悉Linux吗 说一下常用的指令
编写过shell脚本吗 说一下$0是什么意思
SecondaryNameNode是干什么的?
hdfs会吧 我现在要往hdfs上put一个文件 你说说在hdfs上都干了什么
zookeeper了解吧 ***机制说一下 当Leader挂了之后 那么哪个follwer开始第一次***呢
了解mapreduce原理吧 说一下shuffle机制
你用java多长时间了? 我说两年 熟练吗?
我说还行 我知道一些原理
volatile关键字的意义?
讲项目
flume的管道是用的哪个 我说用的内存
他说如果flume突然崩掉怎么办 重启之后是重新输入flume吗
我说设置一个偏移量 他问我怎么设置 我说不会。。 flume应该有对应的api吧。。。
他说如果内存中的数据呢 不是断电就没吗? 其实就是想问我管道的另一种设置方式 文件方式
听你说用了kafka,为什么不用flume直接接hbase呢?
kafka为什么低延迟高吞吐? 哪些特点? 原理说一下
我看你写了会hbase 说一下他的优点 他跟mysql有什么区别
列式存储的特点说一下
说一下事务的隔离级别(表示我只会事务的特点 隔离级别。。。。。听都没听说过)
熟悉Linux吗 说一下常用的指令
编写过shell脚本吗 说一下$0是什么意思
SecondaryNameNode是干什么的?
hdfs会吧 我现在要往hdfs上put一个文件 你说说在hdfs上都干了什么
zookeeper了解吧 ***机制说一下 当Leader挂了之后 那么哪个follwer开始第一次***呢
了解mapreduce原理吧 说一下shuffle机制
你用java多长时间了? 我说两年 熟练吗?
我说还行 我知道一些原理
volatile关键字的意义?
熟悉JVM吧 说说我main方法new了一个类 并调用他的run方法 JVM中都发生了什么
表示我只会到类加载 就把类加载给他说了一下 后面的就不会了
java官方给提供了几种线程池 他们各自的作用
线程池的拒绝策略?
mysql事务的隔离级别?
mysql的引擎都有什么? 各自的特点?
你平时都是怎么学习的?
你最近在看什么书?看完的书都有哪些?
接下来四道题
1.有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
2.给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。
3.实现观察者模式。
4.有一个机器人的位于一个 m × n 个网格左上角。
机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。
问有多少条不同的路径?
有没有什么问题要问我?
之后就完事了 应该还有几个问题没记住 这些应该就是印象深刻的 在线计算本来也准备了好多 他一个也没问
总结:人生中第一次大厂面试 自我感觉还是比较可以的 不过基础知识还是不牢或者不全面 这回回去得再好好学习一下
深信服(一面+二面+三面+HR面):
一面:
自我介绍
hdfs读写原理
HA高可用
情景:我备份了元数据,当整个集群崩溃,只剩下几个datanode的时候,是否可以恢复?
zookeeper原理 干什么的 在大数据生态下有什么用
HashMap实现原理
集合框架中线程安全的类有哪些
JVM内存模型
Hadoop1.x和Hadoop2.x的区别
Kafka的弊端
Java垃圾回收
二面:
自我介绍
项目
接下来就是引导我说一个我从来没听过的知识
Kafka如何实现幂等性,如果是要你实现,你怎么实现?
DStream和DStreamGraph的区别(SparkStreaming的知识)
之后面试官让我去看Kafka蓄水池机制(真的很长)
三面:
自我介绍
如何实现线程安全?(Java锁机制)
Kafka的幂等性?(这个幸亏二面的面试官考我了,我回去特意看了一下)
HR面:
自我介绍
自己的优缺点
期望薪资
还有什么要问我
最后总结:
太多了,实在写不下去了
作为大数据开发工程师的面试来说
我总结了以下几点面试时候的重点
1.项目必须能说出个所以然,至少让面试官觉得你这个是一个完整的项目。
2.所用的编程语言一定要熟练,知道其底层的实现
3.Hadoop至关重要,面试几乎必问
4.数据采集工具多了解一些
5.算法能力,sql能力也很重要
6.在线实时的数据处理也要了解
本人不是大佬,好多面试都挂在了一面上,希望我分享的面经对各位想从事大数据开发工程师或者正在找这个职位的同学有所帮助
最后祝大家offer拿到手软,天天都有好心情!
加油!你是最棒的
#映客##深信服##美团##猿辅导##大数据开发工程师##校招##面经#