大数据开发秋招面经总结
前言:
- 看到牛客上大数据开发面经特别少,面试基本没刷到相关面经.都是刷的JAVA开发的面经.来这里补一帖.回馈一下老铁们.
自身情况:
- 本硕末流211
- leetcode刷题300+,剑指offer全刷,刷过的题基本上都能码出代码(不一定能过OC,现场面无影响).
- SQL很熟练,面试没遇到过不会的.一些业务SQL(留存,在线时长,漏斗,连续登陆天数,共同关注好友等等等)也写的很熟练.
- 理论复习了数据仓库理论/数据分层理论(精读了维度建模工具箱+阿里大数据之路两本书),操作系统,计算机网络,JAVA所有(基础+源码+多线程+JVM),Mysql(看了两遍高性能mysql)
- 大数据组件准备了Hadoop(看了好几遍hadoop权威指南),Hive(Hql+配置调优),一些其他组件有了解知道干啥用的,没用过,就没忘简历上写.
- 大数据算法:paxos,2pc,3pc,zab,cap,base.
实习情况:
- 1年不知名数据仓库实习,开始学到东西了,后来半年多时间都在搬砖.sqlboy.做了无数个报表,做了一小扣扣数据仓库的建设.
准备情况:
- 一边实习一边准备
- 7月初写了简历(大数据组件只写了hadoop+hive,其他没用过的都没写到简历上,也没复习,怕被问住).按照简历所写的内容,一点一点开始从头复习.大概时间分配一个星期操作系统,一个星期计算机网络,一个月JAVA,一个星期Mysql,一个星期Hadoop.两天数据仓库理论(因为自身一直都懂,所以时间比较少)
- 刷面经(大部分刷的是JAVA后台的面经)
投递公司:
时间线:7月底开始投简历,7月中旬陆续做了笔试.8月底那一周集中面了六七家家.再后来的面试全拒绝了.
简历挂
- 陌陌
- 猫眼
- 快看漫画
陌陌投递完秒挂(可能因为之前实习的时候投了简历,拒了面试的缘故吧,找实习的学弟学妹们实习投递也要谨慎啊),猫眼和快看漫画怀疑是刷kpi的,投递之后什么消息都没有,一直在初筛.不合适都懒得给我点.
笔试挂
- 网易
- 百度(提前批挂了简历,后续被捞了做笔试,笔试3道题AC2.7挂了,不太懂为啥捞人)
面试挂
- 猿辅导(笔试算法题一道题没做出来还是进了面试,但是二面挂,自我认为面的不错,可能被卡了学历,数据开发只要985的)
- 360(一面挂,岗位不符,跟面试官没啥共同语言)
拒面试
- 腾讯阅文(笔试都是业务SQL题)
- VIPKID
- 好未来
- 银联
面试走完流程
- 贝壳(offer)
- keep(offer)
- 马蜂窝(offer)
- 快手(准offer:oc谈薪,offer审批中,是真滴慢!!!)
- 美团(录取排位中,从hr得知技术面评价不错,但是hc少,意向书在我面试前就发光了,可能开水团发完带薪金的offer我还有很大机会,hhhhhh)
面经(时间太长了,大多数问题都忘记了)
贝壳:
- 先介绍自己
- 数据仓库分层介绍一下,ods和dwd区别,dm是什么?报表数据为什么不能用ods层的数据?
- 为什么需要元数据?
- 数据质量怎么评估?
- MR的原理
- SQL题:一道简单的sql(分组求排名?具体忘了)
- 怎么保证数据一致性?
- 事实都有哪些类型?
- 数据仓库搭建过程?
- 维度建模的优缺点?还知道别的数据建模吗?除了Innmon模型还有知道吗?
- SQL语句的执行过程.
- 实时相关你知道吗?
猿辅导
- 介绍自己,随便问了简历上的东西
- 算法题: 二叉树路径和
- SQL题:具体忘了,不太简单,我写了整整一页纸的SQL.
- 如何搭建摩拜的数据仓库?
- 如何确定业务过程?
- 算法题:某个金额的硬币兑换方法
美团
- 数据仓库分层
- hive的map/reduce数怎么确定?
- hive数据倾斜怎么办?
- 二叉树种类?完全二叉树知道么?有什么应用?
- TOPk问题.除了堆排还有什么解决方式?
- SQL题:给定uid,login_time,logout_time 求每分钟最大的在线人数.两个time时间都是标准时间datetime(2019-01-01 12:00:00)这种.说实话这个挺难的,我的直觉想法就是用UDF/transform来解决.面试官肯定了解法,但是 不是想要听到的答案.他说出这道题的目的就不是让你能用SQL写出来的.
- 维度建模过程?
- 缓慢维度变化问题?
- 支架表?拉链表?统计带状维度如何更新?
- 为什么维度要做到扁平多对一?
- 元数据怎么管理?
- hive数据倾斜怎么办?
- kafka了解吗?干什么用的?
- 说说操作系统打开文件到屏幕显示内容的过程.
- 有什么学习习惯?
360
- 做过spam? 怎么做的?
- 设计一套实时spam架构.
- mysql索引知道吗?索引都有哪些数据类型?为啥不用hashmap?
- 两个数组求中位数,必须最优解O(log(min(m,n)))的那种解法.
实话:360面试体验很不好,面试官应该是做实时反垃圾的平台的,我实习都是接触离线的,我简历上的东西一个不问,一直再问他会的东西.我直接说我不会,他还继续问.大部分时间都是让我设计那玩意. 不引导强行让你设计,说不会也得设计.
快手
- 数据分层理论
- 数据建模过程
- 缓慢维度变化问题
- 订单表如何存储?
- 窗口函数会吗?是一对一,还是一对多? 怎么用?
- hive数据倾斜怎么办?
- SQL题:行转列,列转行
- 二叉树后序遍历非递归
- 为什么要有数据仓库?
- 数据怎么保证一致性?
- 为什么要做元数据管理?如何做元数据管理?
- 数据质量怎么评估?
- 缓慢维度变化问题*2
- Hive Map数和Reduce数如何确定?
- Hive如何调优?都有哪些参数?
- Hive如何解决小文件问题?Map阶段?Reduce阶段?
- JVM内存如何分配?什么时候新生代GC,什么时候老年代GC?
- HashMap和HashTable有什么区别?
- 会Spark吗?不会!别问,不知道!
- SQL题:live_id,uid,in_time,out_time求每个直播间每分钟最大的在线人数.in_time和out_time是datetime类型.跟美团一面SQL题一样,就是加个维度.15分钟内写完.
有没有发现美团和快手问的问题很像!!!
Keep
- 数仓分层
- JAVA基础:访问属性关键字/接口继承/类继承/接口和类的区别/java8匿名函数/如何将函数付给变量?
- 任务调度系统知道吗?如何判断DAG图?写出代码!
- SQL题:忘了,挺简单的.窗口函数.
- 如何做好元数据管理?
- 数据安全怎么保证?为什么做到字段安全困难?
- 数据倾斜怎么处理?怎么判断哪里出现倾斜?除了看log日志还有什么方法?
- 任务调度系统*2
- 数据仓库主题怎么建设?
- 主动介绍Keep的工作 ....
当天拿的意向书,最近大裁员.按业务线裁人,进去谁能安心啊!!!
马蜂窝
- 数据仓库分层
- 临时需求怎么处理?怎么管理?
- 数据指标如何保证一致性?
- 数据仓库如何对外提供数据
- 设计一个平台,要同时满足BI+临时需求+数据API提供.说实话我到现在也没明白出这问题什么意思!沙雕问题!我觉得这三个就不应该揉到一起做,要是做一个也要分三个功能模块.就分模块给的设计.
- SQL题:uid,login_date. 找出每个用户连续登陆的最大天数.如果我还要知道哪几天登陆了,怎么写?
- 数据仓库分层*2
- 试着设计实时的数据仓库
- 你的技术栈有哪些?
- 一面面试官对你评价不错,我是做搜索的.我这也没有什么问的了,你有什么想问我的吗?
总结
- 我在刷牛客的过程中也看到好多人都在吐槽说大数据需要看的东西太多了,准备不过来.说实话,我觉得面试主要问问题来源来自你的简历.你把简历上写的都弄明白,不怕深问.怎么着你也能熬过面试的那一个小时.我简历上大数据组件就写了HIVE,Hadoop.在面试过程中你也看到了,甚至Hadoop相关的知识都没问过.当然,我面试的公司也没有大厂,自己也没敢投大厂(觉得自己实时数仓方面知识和实践有欠缺).可能这也是差距,也是我菜的所在吧,不思进取,只看到了碗里的.现在回头看看,我当初刷了好久的JAVA后台的面经,以及花了好长时间看JAVA.面试的时候根本没有人问啊,如果花点时间看看spark+hbase+kafka,再自己简单做个项目,可能又是一个结果.在这里写份面经.给自己做个总结,也帮牛友们踩个坑.