百度大数据外包岗 面试题附录答案
1. 自我介绍
2. 聊一下最近的项目,项目过程中遇到哪些问题,是怎样解决的
3. Linkedhashmap和hashmap的区别
LinkedHashMap是继承于HashMap,是基于HashMap和双向链表来实现的;
HashMap无序,LinkedHashMap有序,可分为插入顺序和访问顺序两种,可基于访问顺序实现缓存
4. 说一下java虚拟机垃圾回收机制
对象回收算法包括引用计数法和可达性分析算法。引用计数法简单高效,唯一缺点是当两个对象互相引用时无法被回收。可达性分析算法是通过一系列gc root的对象作为起点,搜索走过的路径形成引用链,当一个对象没有与任何引用链相连,表示对象不可达,可以内存回收
垃圾回收算法包括标记、清理算法、复制算法,标记整理算法,分代回收算法,其中新生代一般采用复制算法,老生代采用标记整理算法
5. Final修饰的int .sting map可以改变吗
Final修饰基本数据类型值不可以改变,但是String,Map,数组等,都可以改变其内部的值,因为他们隶属于类,而类里面的属性还是可更改的。
6. Spark工作中你会用到哪些rdd?
工作中常用到map、flatmap、filter、sortBy、join
7. Map和mapPartition的区别?
Map整体遍历,mapPartition按照每一个分区进行遍历,效率更高
8. Spark有遇到过内存溢出吗?
Map过程中产生大量对象会导致内存溢出;
数据分布不平衡在Shuffer过程中会导致内存溢出
9. Spark调优有了解吗?
基本调优和高级调优
10. 讲一下mr shuffer 的过程吧
首先map生成k.v键值对会收集在环形缓冲区中,当缓冲区达到80%会溢出到本地磁盘,在溢出过程中会按照key进行分区以及排序,然后reducer会根据自己的分区号去本地读取数据文件,读到后会进行合并以及排序,然后进入reducer流程
11. Shuffer过程中的排序算法了解吗?
Map溢出过程中用到的是快排,时间复杂度是nlogn,空间复杂度最优为logn
12. 来写个sql吧,不记得具体的sql了
13. 有什么想了解的吗
#面经##数据开发工程师##百度##社招#