秋招面经第二弹:百度一面-大数据开发工程师

秋招第二弹:百度一面-大数据开发工程师

写在最前:秋招以来一直在冲,因为事情比较多,对于笔试面试一直没有复盘,现在靠仅存的记忆把面试的一些问题记录下来,尽可能记录出能回忆到的问题,但可能记的不是很全。

时长:90min左右

形式:线上面试-如流会议(百度内部会议平台)

  1. 自我介绍

  2. 开始疯狂问项目,项目怎么做的,负责的哪些?怎么实现的?有什么难点?有什么亮点?一些工具是怎么做的?血缘怎么维护的?后期怎么运维的?怎么的开发模式?为什么要这样做?用的什么做的?小任务为什么用spark不直接用python或者shell处理掉 。。。。。。等等等等

    这个面试官一看就是大佬级别的,上来压迫感很强,问的很细,就差问我代码怎么写的了,差不多项目问了有40min,一直在探讨项目实施中的细节,还有一些数据规模,业务过程,面向的用户等等,总之是康师傅都没他细

  3. 问完项目开始问一些常见的问题

  4. 平时遇到过什么bug?怎么发生的?怎么解决的?解决后怎么避免再次发生?

  5. 数据倾斜怎么判断的?怎么解决的?

    我说了怎么解决的,面试官直接挂出来一个编程界面,让我现场解决

  6. 判断数据倾斜时候怎么利用的yarn页面?

  7. 为什么不考虑把yarn上的各task执行情况采集下来,实时的判断是否出现了数据倾斜?是没有想到?还是能力方面想不到?

    我说自己的任务没有必要去采集yarn的任务执行信息,而且实时采集占用资源,收益不成正比。说到这真是有点鞭尸了,莫名有种面试官的优越感就上来了,不知道这个面试官是想问出来什么

  8. 小文件怎么处理?遇到过小文件吗?

  9. 怎么去重构一个模型?

  10. 怎么管理自己的任务?

    这个问题我开始还觉得问的有点小儿科,最后才知道,原来百度采用的是垂直管理方式,就是一个同学如果负责一个需求,那么这个需求涉及的所有东西就全要负责。虽然是数据开发需求,但是如果涉及到了后端的功能,要自己去写工具,前端有时候也要自己写,我内心就想,你如果不是百度,我都容易怀疑你们是个10人小公司

  11. spark怎么调优?内存模型了解吗?

  12. 开始到了算法题,问了30min的算法

    其实30min看起来不是很长,因为写一个算法可能十分二十分的就过去了,但重点是,我说了不会,还问了我30min中

  13. 算法题:蛇形输出一个三维数组

这个算法不是很难,但是这个时候已经面了一个多小时,我万万没想到要那么久,因为接下来还有其他面试,就想着赶紧结束,就直接说了不会。面试官开始问我为啥不会?我心想不会还有啥为啥,就是不会啊。我说好久没写过算法了,手生。他问我平时不写java吗?我说平时都是大数据的开发,后端专门有人写,我们平时写udf时候用到java的时候比较多,但是udf也不是经常会有这种需求。然后离谱的是面试官好像不知道udf,甚至当场去查了什么是udf,查完说好像和后端是不太一样。我问他这不是大数据开发岗位吗?他说是的,但是平时什么都要写

  1. 我说我的时间可能不多了,但是面试官好像对我比较感兴趣,说前面聊的都可以,现在就是要考察一下你的代码能力,再聊会。顺便吐槽了我一波时间安排的不合理。我也吐槽了他一波没想到会面那么长时间

  2. 问我python怎么样,我说你问问看,问我正则用的怎么样,如果不查能写出来吗?我说你问问看。然后给了我一个文件,让我用正则匹配文件的每一行,取出需要的数据。

    我说正则我可以,但是平时用sql比较多,我用sql给你匹配一下,换成python就是把匹配的方法换一下就行,正则的语句都是一样的(其实我忘记python正则匹配调用哪个方法了)。写完之后好像面试官对sql并不是很精通,我又给他解释了一些这些sql是怎么用的,正则怎么执行的。面试官点点头,我以为可以了,没想到又开始了下一轮

  3. 问我shell怎么样?我说你问问看。他说你得和我说掌握程度咋样,我才能知道问你点啥?我说你问问看,就知道掌握程度怎么样了。

    我承认在这里有点开摆了,因为我觉得多半是凉了,又比较着急,只想快速解决掉。面试官给了一个文件,介绍了每行的数据,让我用shell拿到文件中的前m行的第n列。

    我大呼好家伙,多亏这个我会啊,挽回一点颜面。shell中用awk、sed、cut都可以实现,我好像用send写的

  4. 问我写没写过接口之类的东西

    我说写过,但是比较简单,而且平时用的时候为了快速提供给别人用,用python写的接口比较多,然后面试官问我用什么写的?我说flask,他说是django吗?我说差不多,都是python的框架,但是不太一样

  5. 最后问了一些sql问题,半连接有没有用过,都用在了哪些场景,适用于哪些场景?

  6. 反问

    其实这里反问我都不想问了,因为我觉得大概是凉了。我就简单问了你们这样的垂直开发方式,开发权限怎么管理的?面试官说开发权限都很大。我说那安全和规范很难保证啊,这里咱也嘲笑百度一波。

    最后我又说今天的面试多半是凉了,但是整体下来还是学到很多东西的,非常感谢你的一个半小时时间。然后面试官说也不是凉了,可能你平时后端写的比较少,我说对啊,所以我面的是大数据开发,可能百度的管理和开发方式和我的能力不太一样,他说也不要悲观,他会好好考虑的

总结:总体来说二面面试官是很有水平的,通过面试问的问题可以感受到是个技术大佬,而且是那种底层了解很深的大佬,可能平时sql写的比较少,或者这种大佬不屑写sql。虽然面试中说的一些话让人觉得很不舒适,但也可能这种大佬级别的人就是无心之举。总体面试的内容和方向还是很有深度的,而且问的很细很深,考察的也很全面,奈何自己的技术面比较窄,不能应付二面的火力

其实两个星期后百度hr打电话给我问了我的秋招情况,我说还没有签其他的,他说面了一轮下来,其没有更合适的了,面试官觉得我还行,想再约下一轮的面,我心里直接问候一万遍,然后果断拒绝。

你可能感兴趣的:(数据仓库,百度,大数据,java)