7.12号 一面:60分钟
1. 自我介绍
2. 选一个你觉得做的最好的项目进行介绍,然后逐个问简历上写的该项目的每个技术点(项目大概问了30分钟)
3. Hadoop组件你熟悉那个(回答MapReduce和HDFS)
4. HDFS的读写流程说一下
5. 如果HDFS写的过程中DataNode宕机了会怎么办?(回答了一台DataNode宕机的处理机制)
然后追着问:如果所有的DataNode都宕机了怎么办?(懵逼)
6. 说一下HashMap的底层数据结构?
- 为什么当链表长度大于8时,并且数组大于64是链表才转换成 红黑树?
- HashMap插入数据的时间复杂度?
- jdk1.7和1.8链表插入的方式有什么不同?
- 为什么扩容为当前的数组长度的2倍?
- 怎么保证HashMap的线程安全?(ConcurrentHashMap)
- 能介绍下ConcurrentHashMap的数据结构吗?
- 为什么jdk1.8后ConcurrentHashMap采用CAS而不是Segment?
- syncronized与ReetranLock的区别?
7. 介绍下操作系统的虚拟内存?(我答了请求分页机制)然后追着问为什么要这样设计?
然后是两道祖传算法题:
1. 已知random() 是0到max的随机正整数,编程实现输出一个m到n之间的正整数 2. 10G文件,每个数1行,内存20M,求10G文件排序。说思路。
======================================================================
7.19号 二面:60分钟
1. 自我介绍
2. 针对我的一个大数据项目问了一些问题:
- 介绍下NameNode HA的自动故障转移的底层实现原理
- NameNode启动时的工作过程(加载fsIamge镜像文件和Edits日志)
- NameNode启动时,是如何知道具体的Block文件在哪个DataNodo节点中(DataNode的心跳机制? 面试官说不对)
- 为什么要对Flume进行二次开发?(为了将数据导入到HBase中,对rowkey进行设计)
- HBase的rowkey是怎么设计的,设计前有对数据进行提前的统计分析吗?
- HBase的读写流程说一下
- Hbase的LSM树介绍一下?具体的Compaction都有哪些,分别都有什么作用?
- SparkStreaming是如何保证消费Kafka的Exactly Once?
3. 介绍下另外一个分布式缓存项目的设计架构
4. Mysql的事务特性和隔离级别?具体每个隔离级别都是如何实现的?(加锁或者MVCC)
5. 介绍下Mysql的MVCC?
5. CAP理论
6. 一致性哈希算法
7. 操作系统的死锁条件和解决方法
8. Linux 如何查看一个端口号被哪个进程所占用?
9. Shell编程中,那个指令可以查看上一条指令的调用结果?
10. 算法题:最小栈的实现
11. 最后还有一个场景题,当时我是没听懂面试官的意思,没答出来
#陌陌面经##面经##提前批#