其实距离上次跳槽已经过去了三个月,我已经入职了新东家。今天终于克服懒癌准备一鼓作气发一下社招大数据的面经。    我是牛客的1v1的辅导老师之一星星。哈哈哈,为了证明一下我除了面试别人,自己去面试也还行,也拿自己的经历出来探讨一下。    【面试准备】    刷题:因为毕业比较久了,首先刷LeetCode热了个身。后来发现可能因为真的离应届生比较久了,没怎么考算法。    简历:我一直相信简历是工作经历的总结也是面试的思路,而非简单的一张纸或者说用来过简历评估。所以我简历改了2个星期,面试中间又做了一些改动。    制定招聘策略:    1.关于机会,首先我其实联系了几家猎头,聊了一些,觉得都不靠谱,最后其实是自己靠人脉解决了一半,剩下一半直接招聘网站找对应HR解决的。    2.因为很久没有被面试了,我定了一个梯度策略,先找了几家绝对不会去的小公司。中间试了几个不想去的中等公司。最后面的意向公司。    最后的结果是一共面了9个公司,有一个流程太长了,还有一个风评过于差劲,最后我主动终止了面试,剩下的拿到了offer。涨幅根据公司不同吧,最低40%多,最高110%。其实各家是比较平均的,大概都在75%左右。最高的和最低的都是特殊情况。前者我和面试官差点吵起来了,后者是著名送命公司,还要背井离乡。我还年轻,没有女朋友,就算了。       【面试经验】     为了保护隐私,我就隐去了公司名字和我最终入职的公司面经,还有几个特别重复的也不讲了。我的经历是做业务大数据平台的。java技术栈   【某上市公司】    一面:部门leader(视频面试)1小时多一点    1.如何确定flink任务的合理并行度?    从业务要求开始,根据workload特性,做压力测试,层层解反压,为Vertex找到合理并行度和chain strategy,然后倒推TM配置。聊了压测数据模型和真实生产的业务关系,如何解反压,如何应对IO密集和计算密集。    2.flink任务如何实现端到端一致?    ckp机制讲一下,端到端一致需要上下游配合,上游回放,下游幂等。接下来被follow up,kafka如何实现端到端幂等,两种实现,upsert mode和事务提交。面试官表示很满意,很前沿。。。我就很无语。    3.state的存储机制,主要是rocksdb    读写放大优化,cache优化。我自己实现了外部state存储,内置和外置的区别是啥,为什么要这么做。你怎么解决毛刺和倾斜的    4.实时作业托管平台设计    两种任务,flink dataStream和flink sql。 讲了一下flink on yarn的提交过程。然后讲了一下后台设计。被问到了如何打metric。这个我还真没想过,讲了一下我的了解    5.日志采集的原理讲一下    面试官以前做日志的,就是log agent那一套。用前东家的日志container服务吹了个比,面试官很感兴趣。    6.Presto怎么做的查询优化    讲了一下执行计划和一些内部特性的结合    剩下的问题是和我项目相关的。没考算法    二面:总监 1小时多    现场面试    先问了我最大的一个项目,讲了一下技术点和难点。    然后聊了一下数据技术的发展,对实时,OLAP和存储的看法。    问了一下Mysql大集群维护问题    然后问研发效能,怎么做开发和项目管理的    然后开始聊数据技术和业务的关系,一路扯到公司文化。聊得很开心。坦白讲,这个总监我是很喜欢的,后面公司也非常舍得给钱。可惜技术氛围不够浓厚。    三面:HR 30多分钟 电话面,在前东家楼下的咖啡厅    为什么要离职?    你作为项目owner如何拉通不同人,尤其是不同部门的人的利益的?    如果和你合作的一个更资深同事,他的技术方案你觉得不对,但是对方不肯退步怎么办?    你在工作中是如何帮助别人成长的?    你找工作看中什么因素?    还面了哪些家,有什么倾向?    你的期望薪资?    最后涨了75%。          【一个热门陌生人社交创业公司】       一面:小方向leader(电话面试)1小时       讲项目先过去30多分钟。对方的部门整体水位被碾压。       然后聊了一些数据仓库建模的理论知识       如何设计数仓分层,如何设计维度表,如何设计缓慢变化维,如何避免数据烟囱等等       离线数据产出时间优化              二面:老板 1小时多       现场面试       先让我手写了一个sql,给出用户登录日志,求次日留存。然后想看我能不能把sql映射到执行计划,现场手推了一遍,with 代码块重用,同一个key的shuffle合并。       剩下的非常八股       sql的优化,讲了mysql hive sql和flink sql。全程基本我在说。       kafka消费幂等问题,还有kafka的水平扩展怎么做       hdfs小文件问题。       jvm性能调优和诊断       听了一下我的一个项目       然后我从他眼镜反光看到他在百度了。有点尴尬- -              三面:HR 30多分钟 接上一面现场       为什么要离职?       你期望的工资涨幅?       你的职业发展规划,想做什么?       你薪资期望为啥这么高?       什么时候能到岗?              四面:加面了这家公司的一位VP,电话面试,30分钟       我本来还挺期待的,因为也基本算是马上创业成功的vp了。想好好交流一下,可惜全程他没说什么自己的东西。都是我在说   你在工作中遇到的最大的困难?   你工作之后最大的收获是什么?    你如何看待数据技术和产品,和业务的关系?你如何推动两者的结合和发展?    你对赛道怎么看?对UGC,商业化,社区的看法?    什么时候能到岗?结束              【一个热门的招聘软件创业公司】          简历沟通:          HR提前沟通了一下,我们的工作地点,工作强度很大,能接受么?问我为啥离职,为啥投这个,然后我说我这次要转方向,立马说那我们可能给不了你太高呦。心里不太高兴,想的是反正我也不去,嘴上说可以可以。最后HR介绍了自己的业务,然后约面。                    一面:peer面 1小时          面试官百度来的,讲真,这家公司别的不好归别的不好,我同样面试了百度,我觉得这个百度出身的面试官比百度的技术更好。沟通比较好,但是有点套方案          前面上来一堆java八股文。          IO与NIO          JVM和JMM          HashMap和ConcurrentHashMap          然后这里开始Follow Up。给HashMap加TTL,怎么实现          然后两三个架构场景题          Mysql和MongoDB的深翻页性能怎么解决?          我当时也是一蒙,没啥思路,对着引擎就上了,缓存游标啥的。然后讲了一个前东家的异步dump OSS的方案。最后他和我说他想问我用redis,就很尴尬          第二个 redis缓存查询结果,更新的时候怎么做失效          第三个 跨页消重问题          最后一个算法题,说思路          K路归并排序,K很大的时候怎么优化。跳表,败者树          后来发现这家公司的996居然要打卡实行996,少一分钟都不行。加班强度不小,加上HR还有PUA我的倾向,还后面这家公司HR约二面,就找个理由拒绝了。                    【一个食堂著称的老牌互联网公司】          hR首先简历沟通:          为啥看机会?          你在哪里工作?          你为啥要换城市?                         【一面】             这个岗位是数据仓库。所以上来先让我介绍我的业务和数仓分层             面试官和我业务背景差距特别大,用了很多时间解释我的业务场景             然后业务过程设计,粒度设计             然后问了一下实时数据仓库的建模啥的。             最后问了我一个大滑动开窗求UV,HLL 或者 roaring bitmap           二面 连续鸽了两次,然后我就不面了      【一个曾经落寞但是U字上升的老牌大厂】     基础平台     一面 peer面 40多分钟:   可能是我年限真的不长,一面是一个无情的八股文机器。    java的容器讲一下,List和Map的实现    讲一下java的两种锁    讲一下JVM的结构    讲一个项目    讲一下Spark的RDD是一种怎么样的数据结构    算法:合并两个有序数组,检查括号字符串合法性       二面 leader面 1小时不到:    算法, 检查平衡二叉树    flink 如何实现 exactly once。又是一轮 ckp机制    sql解析全过程,calcite是怎么做,stage生成    问了几个case怎么处理的,如何实现自动的列剪枝,谓词下推    spark的block管理    Spark 3.0,whole stage codegen,Adaptive execution,external shuffle service    auto skew detection,我讲了一个前东家的批实现和我自己在流上的实现    parquet和向量化计算    flink的repartition和 spark的shuffle的区别    问了一个项目    spring的AOP和IOC。这个是因为我做过后端开发       三面 传说中的女M 1小时多:    说实话,这个女M表现的并不友善。上来先是个人信息问东问西。。    FLink的多流join性能优化。这个是我项目相关的    failover快恢复   节点代码热部署怎么实现    然后我讨论了JM的单点性能问题,她坚持说这个不存在    性能调优    资源节约:这个地方我确实没怎么好好做过    state的实现和外化存储    interval join    业务的领域模型设计和我数据模型设计的对应    如何建设的数据服务,对外怎么保证SLA和准确性    口述一个算法的实现:分层打印二叉树,正反顺序交替打印二叉树。    坦白讲,这家是我面得最差的,给了我最低的涨幅,卡职级。而且三面面试官当时对我非常针锋相对,杠我每个点。一直挑战我说好多能力实现不是我自己做的blabla。    当时我非常不服气,后来想想,自己可能也有的地方不够solid。后来HR和我说一二面评价很高,三面确实低了一些。       【一家算是近一线的大厂】我的目标公司之一    一面 peer 一小时不到:    讲项目    又是任务托管平台    flink sql的生成过程, job graph 的实现,execution graph的实现。在哪里设计并行度,动态列实现,如何保存状态,如何报警重启    OLAP调优和选型    AP和TP的区别    说出OLAP的三个特点    说出流计算引擎选型的三个特点    这俩问题我印象深刻,头一次有人这么问       二面 leader 两小时,技术深度特别有:    上来先说一下你实时计算的架构,架构上从头开始捋    数据从哪里来,日志采集,服务端投递,离线数据,维表在redis,mysql和Hbase里    中间的计算引擎,flink和批引擎    结果的存储,kafka,mysql,hbase,redis,hive,presto等等。然后一个一个开始抠    日志采集的全流程,调优。    kafka和rocketmq的架构,高可用,负载均衡,kafka如何实现生产消费仅一次,ISR   kafka和rocket mq的区别    kafka吞吐为什么高?partition数过多为什么会有性能下降,针对这种场景设计page cache    kafka温数据转存储    kafka异地多活实现,我用的是直接冗余    kafka读写调优,tag存储怎么实现       Flink的端到端 exactly once。简直每面必问    性能调优,节点profile,反压怎么解,回撤放大怎么解     外存state的实现,cache的evict策略优化,如何减少读写放大,rocksdb的序列化优化    需要修改 state的方案,讲了社区的state process,也说了我们自己的方案    shuffle策略优化,skew动态检查    user defined join和user defined window怎么做,比如 sample join    failover快恢复:slot 备份,container提前加载。还有头条的region failover    JM的单点故障问题,这次这个面试官是能明白这个问题的       mysql的导入优化    Hbase的mvcc,hbase的block cache和索引,region replica和快恢复,full compaction优化,内存碎片怎么优化,mvcc在业务中的实践    hbased的大kv问题    redis怎么做的实时排序和flink的方案有啥区别    我自己实现的简易版数据湖,详细说了一下每个细节的实现    Doris的架构,shard和replica的实现    OLAP的实时导入和索引构建,这块是因为我说了一个索引实现OLAP引擎的思路    大数据量的olap引擎怎么解决的问题    Kylin的实时实现,这个是和我项目相关的,我自己实现了一个类似的    kafa的幂等实现,这个之前问过。       平台建设相关:如何做实时的数据血缘,如何做kafka的column级别安全控制       手写算法,m*n的矩阵,每一行从小到大排列,求前K小个数        三面 一小时 很高屋建瓴:    你的整体架构图画一下,数据流向    每个数据流和workload的特点    你的业务场景讲一下    你如何做性能优化的    如何做SLA的    如何优化资源的。(这个我又被问住了)    你遇到过什么生产环境的复杂问题,怎么解决的    为啥要跳槽    结束       四面HR:    HR是我一个校友,加上我面评还可以,全程没有为难。    老一套,谈薪,为啥离职,怎么选这几个公司    涨幅70%。       【写在最后】    其实面试过程中几个感慨吧。    第一个是高P面试其实面多了就可以发现思维方式是比较固定的。考察的几个方向其实每家都会问。和内部晋升相比也非常相似。如果有晋升需求的小伙伴,不妨面面试找找感觉。    第二个是社招中,讲好自己的故事十分重要,平时对自己的工作多总结思考。    第三个是视野要广,不管是技术上的还是非技术的,有一些问题可能因为精力有限或者业务有局限没有亲自做过,但是不代表你可以不会做。       希望这个经历的分享可以对大家有所帮助。 
点赞 39
评论 10
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-11 17:39
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-21 11:33
昨天是学校最后一场招聘会,鼠鼠去参加了,全场只有一个招聘java的岗位,上来先做一份笔试题,做完后他拿张纸对答案,然后开始问简历上的问题,深圳小厂,6-8k(题目如下),后面还有两轮面试。然后我就在招聘现场逛呀逛,看到有公司招聘电商运营,给的比上年的小厂还多,鼠鼠就去了解了下,然后hr跟鼠鼠要了份简历,虽然我的简历上面全是求职Java开发相关的内容,但是hr还是鼓励我说没关系,她帮我把简历给老板看看,下周一会给我通知。招聘会结束后鼠鼠想了一段时间,也和朋友聊了聊,发现我可能是不太适合这个方向,然后就跟爸爸说回家了给我发条微信,我有些话想跟他说说。晚上爸爸到家了,跟我发了条微信,我立马跑出图书馆跟他打起了电话,这个通话长达一个小时,主要是跟爸爸坦白说我不想找这行了,是你的儿子太没用了,想试试其他行业。然后爸爸也跟我说了很多,说他从来没有希望我毕业后就赚大钱的想法,找不到就回家去,回家了再慢慢找,实在找不到就跟他干(帮别人装修房子,个体户),他也知道工作不好找,让我不要那么焦虑,然后就是聊一些家常琐事。对于后面的求职者呢我有点建议想提一下,就是如果招实习的时间或者秋招开始,而你的简历又很差的情况下,不要说等做好项目填充完简历之后再投,那样就太晚了,建议先把熟悉的项目写上简历,然后边投边面边完善,求职是一个人进步的过程,本来就比别人慢,等到一切都准备好后再投岂不是黄花菜都凉了。时间够的话还是建议敲一遍代码,因为那样能让你加深一下对项目的理解,上面那些说法只是针对时间不够的情况。当然,这些建议可能没啥用,因为我只是一个loser,这些全是建立在我理想的情况下,有没有用还需其他人现身说法。上篇帖子没想到学校被人认了出来,为了不丢脸只能匿名处理了。
KPLACE:找研发类或技术类,主要还是要1.多投 2.多做准备,很多方面都要做准备 3.要有心理准备,投累了就休息一两天,再继续,要相信自己能找到
投递58到家等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务