Vvio总共就一轮技术面+一轮HR面,技术面总体而言,比较宽泛,比较看中基础,面试的全程没有涉及简历上的东西(都准备好跟他扯项目了,感觉是抽取的题库。。。)具体内容如下:
1.熟悉Hadoop哪些组件?
答:hdfs、yarn、MapRedue、Hive
2.讲一讲yarn的调度过程?
答:blabla。。。
3.yarn的调度器有哪些?
答:FIFO、多队列分开调度、CapacityScheduler、FairScheduler。。。(当时没答全)
4.讲讲Hive内部表和外部表的区别?
答:(1)内部表完全受Hive管理,外部表除了受Hive管理外,还受HDFS的管理
(2)删除内部表数据的话,元数据和存储数据都会被删除,而删除外部表的话,只有元数据会被删除,而存储在hdfs中的数据不会被删除。
(3)外部表通过external关键字来创建,内部表不需要。
(4)对内部表的结构进行修改后,会同步给元数据;而对外部表的结构进行修改后,需要进行修复。
5.Hive的join操作怎么写?
答:blabla....
6.Mapper和Reducer写过吗?
答:好久没写了,忘记了。。。
问:udf呢?
答:。。。。
7.熟悉哪些排序?
答:堆排序、快排、归并排序、直接插入排序、简单选择排序
问:那手写下快排
答:。。。(幸好前一天晚上又了遍)
8.MapReduce的哪个过程用到了排序?
答:shuffle过程用到了归并排序(这里说错了个地方,把shuffle过程说成了是在Reduce阶段的刚开始,实际上是在Map阶段的结尾处)。。。
9.Linux熟悉吗?
答:基本的常用命令比较熟悉...
问:如何找出最近三天修改过的文件?
答:find命令,具体参数忘记了,囧。。。
问:如何显示各个程序占用的端口?
答:我。。。netstat?(这一块还是要加强。。。)
10.计算机网络熟悉吗?TCP的三次握手和四次挥手讲一下?
答:blabla。。。。
问:为什么要三次握手而不用两次握手,举个实际的例子说明下》
答:(这不分答得不好,主要是好久没看计算机网络了。。)
11.给你一个1G的文件,机器的内存只有1M,如何利用机器找出出现次数最多的100个字符串?
答:将大文件分成小文件,每个小文件进行统计,找出最大的100个字符串出来,然后将每个小文件统计的前100个出现次数最多的字符串存放到一个文件中,在该文件中找出出现次数最多的100个字符串出来即最终的出现次数最多的100个字符串。
问:具体是如何划分的呢?
答:感觉这里答的不是很好,我是按照单词的个数进行划分的,如果单词的数量凑够1M的话,就分割成一个小文件(感觉面试官不是很满意,这种题型之前看的少,没有很深入的思考过,结果弊端就显现出来了。。。)
=========================================================分割线===================================================================
基本上就这些问题了,总体而言问的实际上并不是很难,一方面由于第一次面试大数据开发相关岗位,没搞清楚知识点的懂点(其实这些问题都见过,只不过有些就一带而过了,没有深入的去学习思考;花费大量的时间在算法题上了,结果并没有怎么问算法题);另一方面秋招到春招好几个月了,已经没啥面试状态了。。。