本人目前在国内某一线互联网从事大数据架构工作,这些考点大纲和资料整理都是之前面试的经验整理。 如果有哪位同学,需要大数据求职面试辅导,请加微信
garyelephant
。或者扫码加我微信:
最后更新时间2020年2月14日。
-
基础知识
- 数据结构与算法:排序、树、图基础算法,红黑树,BTree, skipList
- 普通的技巧型面试题,参考《剑指offer》以及在线题目,《编程之美》,《编程珠玑》,《程序员代码面试指南—IT名企算法与数据结构题目最优解》, leetcode,牛客网
- 海量数据算法面试题 link1, link2, Bloom Filter-1, Bloom Filter-2
- 编程语言基础及核心知识:
- Java, Scala (JVM, GC, ClassLoader, 反射,泛型, 注解,切面,ServiceLoader, CodeGeneration, Collections(HashMap, LinkedHashMap, TreeMap, ConcurrentHashMap, BlockingQueue), ThreadPool, concurrent库, NIO)
- Python(GIL, GC)
- 并发模型:actor, reactor, I/O多路复用(I/O Multiplexing)机制(select, epoll)
- 设计模式:
-
大数据技术栈(计算,存储,网络):
- Hdfs,
- Yarn,
- Spark(+ Spark MLlib),
- Kafka
- Azkaban
- Presto
- Elasticsearch,
- HBase,
- Zookeeper,
- Hive,
- Flume,
- 文件格式(Parquet, Carbondata, Lucene, Arrow)
-
数据库技术
- mysql(索引,事务,事务隔离级别,锁, 范式, binlog)
- mongodb
-
大数据与分布式系统重要理论:参见大数据关键理论的笔记
- 分布式系统理论:CAP, MapReduce, DAG, MPP
- 数据仓库理论, 数据仓库模型设计(分层建设、主题模型、元数据管理), 参见数据仓库模型
- OLAP,OLTP, Ad-hoc
- 一致性协议:Paxos
- 分布式事务: 2PC, 3PC,TCC
- MVCC
-
架构知识:
- 数据仓库,
- 流式计算,
- 多维查询,
- 搜索,
- 日志收集,
- 分布式锁和主从选举,
- Lambda架构
- 高可用
- 数据治理、元数据管理、数据质量监控
- 消息队列
- 集群管理
参考《石衫的架构笔记》
大数据 + 业务
的应用案例- BI
- 推荐
- 用户画像
- 审计/风控
cgroups
Raid
SDN
VLAN: http://network.51cto.com/art/201409/450885_all.htm
Python并发模型,GIL
GC原理及调优
常用数据结构的实现方式
Q1: class vs object vs trait vs case class?
排序算法
SkipList
树的数据结构与常用算法(重点红黑树、BTree)
图的数据结构与常用算法
HashMap, LinkedHashMap
大数据算法
常用设计模式
如何用java,python实现常用设计模式
参考设计模式学习笔记
数据仓库,流式计算,多维查询,搜索,日志收集,OLAP,OLTP,分布式锁和主从选举
CAP, MapReduce, MPP, Paxos, 2PC, 3PC,MVCC, WAL(Write ahead log)
待定:mapd,neo4j
数据库:mysql,mongodb
Q1: MySQL 不同引擎的区别?
Q2: MySQL, Mongodb 索引的原理?
A2: 详见MySQL索引背后的数据结构及算法原理
B+树的实现细节是什么样的?B-树和B+树有什么区别?联合索引在B+树中如何存储?
索引原理,分不同的存储引擎:
(1) MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复
(2) InnoDB的数据文件本身就是索引文件,叶节点包含了完整的数据记录。这种索引叫做聚集索引。因为InnoDB的数据文件本身要按主键聚集,
所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,
如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。
InnoDB的辅助索引data域存储相应记录主键的值而不是地址。换句话说,InnoDB的所有辅助索引都引用主键作为data域。
Q3: MySQL中,什么样的查询会用到索引?
Q4: 为什么Mysql用的是B+tree, Mongodb用的是B-tree, Lucene用的是SkipList ?
Q5: MySQL, Mongodb 如何实现HA ?
Q6: MySQL 的事务隔离级别?
数据传输:Flume, Logstash
消息队列:Kafka
参考笔记:Kafka关键技术点
搜索,多维分析:Elasticsearch
参考笔记:Elasticsearch关键技术点
数据仓库:Hive
文件格式:Parquet, Carbondata, Lucene, Arrow, mmdb
Q1: 画出完整的Parquet文件格式?
Q2: 画出完整的Lucene文件格式?
文件格式相关的笔记见列式存储文件笔记
计算:Spark
参考笔记 Spark 关键技术点
计算:Presto
参考笔记 Presto关键技术点
NoSQL: HBase
资源管理调度:Yarn(资源隔离方法,调度策略,HA)
Yarn与HDFS的笔记整理见HDFS, Yarn关键技术点
存储:HDFS(namenode HA, fsimage)
Yarn与HDFS的笔记整理见HDFS, Yarn关键技术点
分布式一致性:Zookeeper,分布式锁和主从选举
参考笔记:Zookeeper关键技术点
本人目前在国内某一线互联网从事大数据架构工作,这些考点大纲和资料整理都是之前面试的经验整理。 如果有哪位同学,需要大数据求职面试辅导,请加微信
garyelephant
。或者扫码加我微信: