2022年2月28日,我将我改了4遍的简历上传至boss上,还没开始投递,但收到来自百度的hr消息,于是发了一下简历,没过几天便来自百度的面试邀请,直接上图吧。
1. 一面问题
- 自我介绍
- 你博客的电商分析项目中,我看你用到了很多组件,你能说说这些组件都是在干什么吗?
- 了解hadoop的组件吗?说一说yarn在hadoop中的位置,以及执行作业时yarn的作用?
- 你刚才提到es,你使用过es吗?了解es的原理吗?
- 你会scala吗?
- 说一下mapreduce的流程,以统计文本单词数为例?
- 如果一份数据某个key值数量较多,我们应该怎么办?
- 大表join小表你会怎么处理,小表join大表呢?
- 和别人相比,你觉得你你自己的优势在哪里,或者说自己的优点?
- 这些博客都是你自己写的吗?
最后,面试官说:我应该是你二面的面试官,但是由于流程安排有问题,我成为了你一面的面试官,sql题和python题就不考你了,你等后续的安排吧,一面的面试官会考你题。
一面结束后,当晚就收到了来自百度的二面电话,通知第二天下午3点二面。
2. 二面问题
- 自我介绍
- SQL题:在两张表,表中有3个字段(id,label,date),ID代表的是用户标识,label代表的是标识,date代表日期,我要寻找前后两天id一样,但label不一样的用户id和label
- SQL题:还是那两张表,这次表的id不唯一,要求出同一id下今日最大的label和昨日最大的label,并进行比较,只取出相等label的id
- 会用scala吗?
- spark的并发数了解吗?怎么进行设置?
- 看你用过es,你会es的命令吗?
- 你知道spark的repartition算子吗?
- 我有一个这样的场景,在用spark处理数据的时候,需要很大的并发量,而我写入es时,并发量需要很小,否则容易崩溃,你觉得怎么实现这一过程?
- 回答一下:分区数,并发和核心数的关系?
- 根据上述你回答的关系,你觉得在刚才的场景中,如何实现高并发处理,低并发写入es?
- 根据你的回答,repartition算子应该如何运用在上述过程中?
- 除了repartition算子,你还能想到其他的算子能实现这个功能吗?
- 你知道coalesce算子吗?它合并分区不需要进行shuffle
- 平时用rdd的情况多吗?
- 说一下你的经历吧,在滴滴实习的经历
- 你能实习多久?
面试官从头到尾都是很认真的态度,并且我从并发数那道题开始就回答不上来了,但过程中一直在引导我,后面支支吾吾完成了面试,看来自己在spark的运行机制上的理解还是很浅,有必要加强一下自己对spark整个流程的运作这方面的知识。
3. 总结
面试的要手撕的代码倒不难,但是难在对大数据组件的基础理解上,我原本以为作为一个数据开发人员不需要知道spark怎么配置,并行度是如何设置,计算资源是如何分配的,因为大数据开发人员有自己的配置规则,但二面的问题确实比较细,后续过程我会查找资料,将这些题的答案都公布在本博客,欢迎有知道以上问题的小伙伴给我丢链接、资料或者私信我呀!