2019秋招 | 大数据的面经(头条、阿里、美团)

作者:Commando20180403011197
链接:https://www.nowcoder.com/discuss/142963
来源:牛客网

面的公司并不多。拿到了头条和阿里的意向书,如果不出意外应该就是这俩选一个了。

没有实习,没有项目经历,什么都没有,上去就是硬怼。本科不是相关专业,研究生转方向但是是留学生,也不是特别厉害的学校。各方面都比较劣势。

优势就是特别能背。

头条:

一面:面岗位相关的基础,上来面试官直接发现我什么经历都没有,我直接说熟悉hadoop。挑了HDFS让我讲一下。

NN和DN。

HA的实现

zookeeper的原理,zk是如何保证一致性的,zk是如何判断session超时,connection超时的。如何触发回调。

client和HDFS文件的读写过程,延迟太高,怎么解决。我当时脑子一蒙,直接说了设计的就是高吞吐量的文件系统。

yarn的结构,RM和NM的交互,如何分配任务的。

yarn在什么层面调度,和k8s和mesos有什么区别,内存调度是什么怎么调度的,如果考虑CPU怎么调度的。如何实现隔离的,Control group 和Namespace是怎么回事。

手撕算法,链表排序。

人生中的第一次面试。。。。面的一团糟,多亏面试官使劲高抬贵手。。。

二面:面的计算机基础:

上来手撕,剑指原题,两个栈实现一个队列。

问了一下转专业的经历。

讲个简历的项目。

操作系统中的进程和线程的区别。

JVM的内存模型说一下,堆,栈,永久区,GC。

Java的多线程。

Hadoop的MR和Spark有什么区别,为什么Spark有优势。

TCP

用过什么数据库啊,然后就没往深了问了。

手推神经网络上的反向传播,把链式求导写出来,激活函数sigmoid。

介绍一下LSTM,和GRU的区别。

过。

三面:技术深度,问得特别特别细

看过源码对吧,hadoop的HDFS,Yarn,MapReduce源码讲讲,精确到方法和类。

客户端和NN的通信过程,和DN的通信过程。

HA中的选举过程,如何防止脑裂,为什么需要fencing,SSH连不上怎么办。

checkpoint的过程

yarn的状态机和epoll

yarn的公平调度器和容量调度器和FIFO

yarn抢占

MapReduce全过程,分片怎么读的,为什么用快排,换别的行不行,多路归并怎么实现的,环形缓冲区怎么实现的。

场景,很多牛逼的电脑,大CPU大内存,网卡超烂,如何优化? 强制本地化,选高压缩的序列化格式,核心就是尽量减少网络IO。

场景,一个加载在内存里的HashMap,Key和Value全是int,从硬盘读进来只做查询不做修改,不考虑查询效率,尽可能提高空间效率,稍微考虑一下时间效率。从JVM调优到数据结构到GC到。。。。

手撕,实现一个线程池。

在spark和hadoop中如何处理数据倾斜。

spark的调度过程,DAGScheduler如何划分stage,TaskScheduler如何调度任务的。Spark的shuffle是什么样的,怎么优化的。

评价一下Hadoop和Spark的代码风格,我曹,我随便说了说,怕送命题。幸好我说完了他就自己说了,疯狂点头。

Java的多线程,讲讲锁。synchronized和reentrantlock的区别。讲讲阻塞队列,volatile

synchronized为啥是非公平的,这个我真不知道,回来一顿狠查,赶紧记住了。

Java的Obejct谈谈

Java的容器谈谈

Java的NIO用得咋样,不咋样。。。那就不聊了。

MPI聊聊

你Scala用得怎么样呀,Python怎么样啊

设计,设计一个RPC框架,我看你简历上做过,谈谈思路,观察者模式讲一下,并发容器。

设计,现在有一个RPC框架,需要使用线程池,多次复用socket,TCP,怎么传递命令。变相考hadoop,使用操作码。

结束。这一面的面试官超强,被压着打。

四面:Um…..和我这个岗没有一毛钱关系。

手写一个leetcode hard,就是两个数组,找全局中间数那个。

问问搜索。

如何构建倒排索引

BM25

如何加速查询,WAND算法细节。

倒排索引的log时间合并

如何评价一次query,设计一个机器学习模型,如何设计这样的模型,如何提取feature,用什么模型

如何做查询补全 Trie

设计一个查询缓存

如何对倒排索引进行空间压缩,我先说了OptPForDelta

如何选择最优分裂点,抽样,然后算。

手撕个代码实现一下

如果不抽样,你这样是全局最优吗?我说是啊,他说不是。。。。对每一个算一个。好吧,他说得对。

还有别的优化方式吗 Variable Byte

聊家常。。。。出了门感觉人生都灰暗了,跪

美团:

数据开发,就是数据仓库开发,好多重复的我不写了。已经拒了

一面基础:

讲讲项目

java基础

HTTP和TCP

写俩算法,可以用IDE。都是超简单的,有一个台阶,还有一个m的n次幂,自己写个测试试一下

写个sql

mysql的索引,如何实现的,何时失效,聚簇索引和非聚簇索引,B+树

写个单例,懒汉饿汉。

处理数据倾斜

Spring系列会吗?不会

二面

hadoop和spark简单讲讲,只说结构原理不说源码

spark的调优

JMM,全程不打断,我一口气说到了底。。。

数据仓库的星型模型和雪花模型,上卷下钻

Hive

还有啥忘了

spark sql,窝不会

三面

讲项目

HTTP,TCP

操作系统的进程与线程

Java多线程,线程池

爬虫讲讲原理(我项目里用了)

场景:实现一下chrome里那个历史记录这个功能,用啥数据结构怎么实现

python,MPI,数据仓库,你都会点什么都说说

问了项目里的数据清洗,补全和NLP,然而我的NLP一点深度学习没用,感觉对面可能有点失望。

问了推荐系统

问了flask,Restful API

tensorflow怎么实现的知道么,说了个大概,caffe会用么。不会

阿里:

阿里在我投简历两个月之后捞我,而且面试简单得出奇,只考广度不考深度。。。。我还是犯了好多错误,提醒大家,如果面试这种面试官不深问的,一定要自己使劲说,不要说两句就停了,他觉得你只会这么多。

一面:这个面试官是个做算法的

说个项目

Java基础,说说容器

多线程,线程池

java的序列化方式,hadoop的序列化方式,Avro,parquet,transient关键字

spark的原理,我就说了个架子等他问,他不问了!

设计模式,观察者,hadoop用了啥,我说用了组合,等他问我第一第二关系的事,他不问了!

业务题,拿spark实现个业务逻辑,拿嘴说就行。map然后reducebykey然后。。。

一个白板代码,是他工作业务逻辑的抽象。

还问啥我给忘了

二面三面开始集中面试,连着面了我2小时,我一起写了。

说个项目,问我项目实现细节。工程细节,你这怎么加速,Geohash怎么用的。并对我的辣鸡项目表示了鄙视。

spark streaming和storm,flink的区别

各种分布式计算框架的区别

storm如何处理反压,如何保证流的可靠性的

flink会吗,不会

hbase的row key设计,我现在就要范围查询value怎么设计。

yarn里面机器崩了,怎么让任务接着算。。。我说了重启nodemanager重算这个分片,如果这个分片也不想重算呢,接着算,没这功能没说出来。回来想想其实还是应该能说个思路的。

说了AppMaster的故障怎么实现的HA

zookeeper是如何选举新的Active Namenode,没仔细说,说了个原理他又不继续问了,后悔。

大数算法:10亿个int查重,讲思路,布隆过滤,mapreduce,bitmap,算法的复杂度说说

机器学习竞赛跟我说说,讲了特征工程,提了GBDT,然而我觉得他并不知道GBDT是啥,讲完和我说你这就是java的hello world啊。主要也是自己讲的不好,我也很是哽咽

HR面:

阿里这个HR面是真的犀利,我也没经验,第一次面这种话里带枪的HR面。

中间委婉谈及了我的学历,我的水课,我的没实习没经历。。。被贬得一无是处,我也不敢顶她,只能避重就轻解释一下。现在回想可能表现得太没自信了更减分。

拿到了意向书。。。。没有谈薪资,没有加面,感觉要拿劝退价了。

与作者交流:https://www.nowcoder.com/discuss/142963

更多笔经面经:https://www.nowcoder.com/discuss?order=0&type=2

    原文作者:牛客网
    原文地址: https://zhuanlan.zhihu.com/p/50187380
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞