2022百度大数据开发工程师实习面试经历

2022年2月28日,我将我改了4遍的简历上传至boss上,还没开始投递,但收到来自百度的hr消息,于是发了一下简历,没过几天便来自百度的面试邀请,直接上图吧。
请添加图片描述

1. 一面问题

  1. 自我介绍(正常回答)
  2. 你博客的电商分析项目中,我看你用到了很多组件,你能说说这些组件都是在干什么吗?(自己博客的项目,一步一步做的,比较熟悉,直接回答了kafka、flink、es、mysql、bi工具)
  3. 了解hadoop的组件吗?说一说yarn在hadoop中的位置,以及执行作业时yarn的作用?(回答yarn的组成部分和作用)
  4. 你刚才提到es,你使用过es吗?了解es的原理吗?(不了解,只知道大概,不会写es,因为es的代码和sql很不一样)
  5. 你会scala吗?(不会,一般都使用pyspark和pyflink,看得懂简单的scala)
  6. 说一下mapreduce的流程,以统计文本单词数为例?(正常的maptask和reducetask)
  7. 如果一份数据某个key值数量较多,我们应该怎么办?(规约操作)
  8. 大表join小表你会怎么处理,小表join大表呢?(mapjoin,小表join大表我犹豫很久回答正常的join就行,面试官说其实两者没有本质区别)
  9. 和别人相比,你觉得你你自己的优势在哪里,或者说自己的优点?(介绍自己的优点)
  10. 这些博客都是你自己写的吗?(很确信的回答是的)

最后,面试官说:我应该是你二面的面试官,但是由于流程安排有问题,我成为了你一面的面试官,sql题和python题就不考你了,你等后续的安排吧,一面的面试官会考你题。

一面结束后,当晚就收到了来自百度的二面电话,通知第二天下午3点二面。

2. 二面问题

  1. 自我介绍
  2. SQL题:在两张表,表中有3个字段(id,label,date),ID代表的是用户标识,label代表的是标识,date代表日期,我要寻找前后两天id一样,但label不一样的用户id和label(简单的join操作,where判断不同即可)
  3. SQL题:还是那两张表,这次表的id不唯一,要求出同一id下今日最大的label和昨日最大的label,并进行比较,只取出相等label的id(分组、join、where判断不同即可)
  4. 会用scala吗?(一面一样的问题,我感觉我要凉了)
  5. spark的并发数了解吗?怎么进行设置?(这道问题,我其实比较懵,只知道一个task要一个核,回答不太清楚)
  6. 看你用过es,你会es的命令吗?(一面一样的问题)
  7. 你知道spark的repartition算子吗?(我说是重分区的算子,可以重新设置分区)
  8. 我有一个这样的场景,在用spark处理数据的时候,需要很大的并发量,而我写入es时,并发量需要很小,否则容易崩溃,你觉得怎么实现这一过程?(问到这,我其实很慌,因为上面的spark的并发数我没回答出来,然后这里又问到了并发的案例。根据大数据的感觉,我回答在spark端处理的数据可以进行合并,然后合并到一定程度,再写入es。回答完后问我如何合并,我回答可以join呀,就是把数据合并起来。)
  9. 回答一下:分区数,并发和核心数的关系?(这道题我突然意识到,分区数和核心数到关系,分区数越多,需要处理的核心数越多,然后面试官再问,你觉得准确的关系是什么?我犹豫了一会说到了一对一,一个分区需要一个core。然后面试官说,可以这么回答。)
  10. 根据上述你回答的关系,你觉得在刚才的场景中,如何实现高并发处理,低并发写入es?(到了这一步,我瞬间豁然开朗,原来分区数决定着core数,core数决定并发,于是把第8题用重分区的方法减小并发说了出来。)
  11. 根据你的回答,repartition算子应该如何运用在上述过程中?(就是把重分区换成了repartition算子又说了一遍。)
  12. 除了repartition算子,你还能想到其他的算子能实现这个功能吗?(将比较常见的groupbykey,reducebykey,join产生shuffle的算子说了出来)
  13. 你知道coalesce算子吗?它合并分区不需要进行shuffle(这个算子我没听过,后面去找了,coalesce算子可以折叠同一个工作节点的分区,比如一个文件text存在rdd的两个分区上,可以使用coalesce折叠为一个分区,避免shuffle。)
  14. 平时用rdd的情况多吗?(sql较多,偶尔写写dataframe)
  15. 说一下你的经历吧,在滴滴实习的经历(把三个项目说了说,维度建模、数据开发、拉链表)
  16. 你能实习多久?(按照自己的情况回答即可)

面试官从头到尾都是很认真的态度,并且我从并发数那道题开始就回答不上来了,但过程中一直在引导我,后面支支吾吾完成了面试,看来自己在spark的运行机制上的理解还是很浅,有必要加强一下自己对spark整个流程的运作这方面的知识。

3. 总结

面试的要手撕的代码倒不难,但是难在对大数据组件的基础理解上,我原本以为作为一个数据开发人员不需要知道spark怎么配置,并行度是如何设置,计算资源是如何分配的,因为大数据开发人员有自己的配置规则,但二面的问题确实比较细,后续过程我会查找资料,将这些题的答案都公布在本博客,欢迎有知道以上问题的小伙伴给我丢链接、资料或者私信我呀!

20220303补充

面试完后,我将我不懂的问题总结了起来,主要是spark并发的一些问题,大家可以参考下面:

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳小葱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值