年初找实习的时候面的,每轮面试相隔一周,从 3 月面到 4 月。四面四周。
入职后也见到了各轮面试官,一面是同级别的同事,二面是主管,三面是部门 Leader,HR 面是专门负责该部门招聘的 HR。
面试做算法题的难度和面试的表现有关,答得比较差或者不想要你估计就是 hard 了。
- 一面回答出来了 70% 的问题,给了 easy;
- 二面几乎全部回答出来了,面试官说不用做题了;
- 三面回答的差一些,给了 medium。
答案在公众号的文章里基本都能找到,点击此处获取。
一面
自我介绍
为什么要投这个岗位
数仓是什么?
Hive 是什么?
讲一下 MapReduce 的过程?
MR 和 Spark 的 Shuffle 过程?
shuffle 用来干什么?
为了让相同的 key 都到一个 reduce 中进行处理,reduce 要去每个 map 中拉取数据,all-to-all 的过程,跨分区聚集相同的 key。
Hive 的语句转 MR 的底层原理?
Groupby 的底层原理讲一下?
其他算子的底层原理?
join 的底层原理讲一下?
- 两个 map 读取两个表 table1 和 table2,处理成 key-value 的形式。
- 其中 key 是 join on 后面的字段,value 就是表中的其他字段,以及 tag 标记,记录了该 kv 对来自 table1 还是 table2。
- reduce 拉取每个 map 相同的 key 的数据到一个 reduce 中处理。
- reduce 根据 tag 将来自 table1 和 table2 的数据拼接成一条。来自相同的表的数据不拼接。
Hadoop 和 Spark 的区别?
MR 为什么慢?
Flume 用来干什么的?为什么要用?
Flume 的架构?
分层建模怎么分层?
编程题3个
- 力扣 674. 最长连续递增序列
- input table1:shop_id, sale_dt(2022-02-22 18:20:15),sale_vol。求每天,每个商家,总销量
- input table2: user_id,visit_time(2022-02-25 18:30:00 ) 。求取用户最大连续访问天数。output: user_id,first_visit_dte,last_visit_dte
二面
自我介绍
为什么考研?
考研怎么学的?
为什么考xx学校?
工作干什么?
想在哪工作?
为什么报这个岗位?
学习能力怎么样?
简历上这些技能怎么学的?
讲一下数仓建模的分层,为什么要这样做
讲一下大数据生态,他们是怎么配合的
spark 什么时候会产生内存写满到磁盘
hadoop 小文件怎么处理
数据倾斜怎么解决?
数据质量讲一下
元数据知道吗?
hive 的结构讲一下,与 mr 的关系,起了什么作用,怎么转换的
mysql 的表和视图的区别
在学 sql 吗?
讲一下 sql 的常用窗口函数
讲一下 sql 的数据类型
讲一下 sql 的几种 join
知道笛卡尔积吗
三面
自我介绍
为什么要考研
做一道题吧 力扣91. 解码方法
讲一下项目
为什么要选这些 OLAP 框架,技术选型怎么选的
日活怎么求?
写一下 WordCount 的代码
项目中遇到哪些困难
大数据的学习路径
HR 面
自我介绍
对自我介绍过去的经历详细问了一下
什么时候可以入职
性格特点
版权归原作者 和风与影 所有, 如有侵权,请联系我们删除。