网易、快手、滴滴、爱奇艺、迅雷面经心得
笔者双非硕,从事大数据开发已经快两年了,今年三月份准备找实习,看了牛客网很多面经,现在也是来回馈牛客攒人品的时刻。
以下问题只按照模块,不分公司。
// 如有不足,请帮忙指正。
技术范围
Hadoop、Spark、Hive、Hbase、Kafka
Mysql、Redis
Zookeeper
计算机网络、操作系统、Java基础、Jvm、Juc
Java基础:
1、面向对象三大特征、什么是多态?
父类引用指向不同的子类对象
2、接口和抽象类
抽象类能否被继承、接口定义常量
模板设计模式
3、反射
Class.forName和ClassLoader.loadClass的区别
forName除了会加载class文件还会进行解释,执行静态代码块
4、IO、NIO
管道、缓存区、选择器
5、List集合
6、HashMap // 重中之重
线程安全 ConcurrentHashMap
Java虚拟机:
1、内存模型
堆、方法区、Java虚拟机栈、本地方法栈、程序计数器
StackOverflowError
OutOfMemoryError
2、判断对象死亡方法
可达性分析算法 缓刑机制
3、GC
回收算法、回收器
重点是CMS、G1
4、如何定位CPU飙高
top
5、Jvm调优
jps、jstat、jmp等
Java并发编程:
1、创建线程的几种方法
Thread、Runable、Callable、线程池
2、Java重点锁机制
synchronized和ReentrantLock
底层实现
AQS
CAS
3、线程池一条龙
优势、七大参数、线程参数设置、常用线程池四种、工作队列、增长策略、拒绝策略
4、死锁
四个判定条件、四种解决思路
5、volatile 语义
Lock前缀指令会将处理器的缓存数据写回内存
增加字节提升性能
操作系统:
1、进程、线程
如何通信
2、IO管理
五大IO
3、用户态和内核态
计算机网络:
1、OSI七层
2、TCP和UDP区别
3、TCP如何保证可靠传输
拥塞避免
Zookeeper:
1、leader选举
2、ZAB协议
3、分布式锁
watcher机制
Mysql:
1、事务ACID
Mysql如何实现
2、事务隔离级别
3、索引一条龙
索引底层、优势、缺点、失效、聚簇和非聚簇、回表
4、SQL执行流程
5、Innodb和Myisam的区别
Reids:
1、单线程模型
2、跳表
3、为什么快
4、RDB和AOF
fork 按页复制修改 快照
aof瘦身
5、缓存穿透、缓存击穿、缓存雪崩
解决方案
6、双写一致性
7、分布式锁
8、哨兵
Hadoop:
1、Hdfs读写流程
2、机架感知
3、租约恢复机制
4、FsEditlog和FsImage合并
5、HA
6、MapReduce执行流程
MrAppMaster
128M splitsize = max(minsi***(blocksize, maxsize))
Spark:
1、RDD及其相关算子
2、Spark作业执行流程
DAGSheduler、Task、ShuffleDependency
3、宽窄依赖及其容错
4、数据倾斜解决方案
Hbase:
1、Hbase的存储结构
2、Hbase的读写流程
3、写热点问题解决
预分区、RowKey设计
Hive:
1、数据仓库的分层
2、数仓建模
星型模式、雪花模式
3、Hive架构及存储结构
4、HiveSQL解析成MapReduce的过程
5、内部表和外部表
6、动态分区
7、order by 和 sort by
8、Map join
9、查询结构导入是否支持
10、数据倾斜
join 优化
group by 优化
hive.groupby.skwindata
distinct 优化
sum + group by
11、UDF函数
Kafka:
1、存储架构
2、数据有序
3、消息一致性
consumeroffset topic
ack -1
全部评论
(3) 回帖