Hadoop基础
介绍下Hadoop
Hadoop的特点
说下Hadoop生态圈组件及其作用
Hadoop主要分哪几个部分?他们有什么作用?
Hadoop 1.x,2x,3.x的区别
Hadoop集群工作时启动哪些进程?它们有什么作用?
在集群计算的时候,什么是集群的主要瓶颈
搭建Hadoop集群的xml文件有哪些?
Hadoop的checkpoint流程
Hadoop的默认块大小是多少?为什么要设置这么大?
Block划分的原因
Hadoop常见的压缩算法?
Hadoop作业提交到YARN的流程?
Hadoop的Combiner的作用
Hadoop序列化和反序列化
Hadoop的运行模式
Hadoop小文件处理问题
Hadoop为什么要从2.x升级到3.x?
Hadoop的优缺点
HDFS部分
HDFS文件写入和读取流程
HDFS组成架构
介绍下HDFS,说下HDFS优缺点,以及使用场景
HDFS作用
HDFS的容错机制
HDFS的存储机制
HDFS的副本机制
HDFS的常见数据格式,列式存储格式和行存储格式异同点,列式存储优点有哪些?
HDFS如何保证数据不丢失?
HDFS NameNode高可用如何实现?需要哪些角色?
HDFS的文件结构?
HDFS的默认副本数?为什么是这个数量?如果想修改副本数怎么修改?
介绍下HDFS的Block
HDFS的块默认大小,64M和128M是在哪个版本更换的?怎么修改默认块大小?
HDFS的block为什么是128M?增大或减小有什么影响?
HDFS HA怎么实现?是个什么架构?
导入大文件到HDFS时如何自定义分片?
HDFS的mapper和reducer的个数如何确定?reducer的个数依据是什么?
HDSF通过那个中间组件去存储数据
HDFS跨节点怎么进行数据迁移
HDFS的数据-致性靠什么保证?
HDFS怎么保证数据安全
HDFS中向DataNode写数据失败了怎么办
Hadoop2.xHDFS快照
HDFS文件存储的方式?
HDFS写数据过程,写的过程中有哪些故障,分别会怎么处理?
NameNode存数据吗?
使用NameNode的好处
HDFS中DataNode怎么存储数据的
直接将数据文件上传到HDFS的表目录中,如何在表中查询到该数据?
MapReduce部分
介绍下MapReduce
MapReduce优缺点
MapReduce架构
MapReduce工作原理
MapReduce哪个阶段最费时间
MapReduce中的Combine是干嘛的?有什么好外?
MapReduce为什么一定要有环型缓冲区
MapReduce为什么一定要有Shuffle过程
MapReduce的Shuffle过程及其优化
Reduce怎么知道去哪里拉Map结果集?
Reduce阶段都发生了什么,有没有进行分组
MapReduce Shuffle的排序算法
shuffle为什么要排序?
说一下map是怎么到reduce的?
说一下你了解的用哪几种shuffle机制?
MapReduce的数据处理过程
mapjoin的原理(实现)?应用场景?
reducejoin如何执行(原理)
MapReduce为什么不能产生过多小文件
MapReduce分区及作用
ReduceTask数量和分区数量关系
Map的分片有多大
MapReduce join两个表的流程?
手撕一段简单的MapReduce程序
reduce任务什么时候开始?
MapReduce的reduce使用的是什么排序?
MapReduce怎么确定MapTask的数量?
Map数量由什么决定
MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量?
MapReduce的task数目划分
MapReduce作业执行的过程中,中间的数据会存在什么地方?不会存在内存中么?
Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?
map输出的数据如何超出它的小文件内存之后,是落地到磁盘还是落地到HDFS中?
Map到Reduce默认的分区机制是什么?
结合wordcount述说MapReduce,具体各个流程,map怎么做,reduce怎么做
MapReduce数据倾斜产生的原因及其解决方案
Map Join为什么能解决数据倾斜
MapReduce运行过程中会发生OOM,OOM发生的位置?
MapReduce用了几次排序,分别是什么?
MapReduce压缩方式
MapReduce中怎么处理一个大文件
YARN部分
介绍下YARN
YARN有几个模块
YARN工作机制
YARN有什么优势,能解决什么问题?
YARN容错机制
YARN高可用
YARN调度器
YARN中Container是如何启动的?
YARN的改进之处,Hadoop3.x相对于Hadoop 2.x?
YARN监控
二
Zookeeper面试题
介绍下Zookeeper是什么?
Zookeeper有什么作用?优缺点?有什么应用场景?
Zookeeper的选举策略,leader和follower的区别?
介绍下Zookeeper选举算法
Zookeeper的节点类型有哪些?分别作用是什么?
Zookeeper的节点数怎么设置比较好?
Zookeeper架构
Zookeeper的功能有哪些
Zookeeper的数据结构(树)?基于它实现的分布式锁?基于它实现的Master选举?基于它的集群管理? Zookeeper的注册(watch)机制使用场景?
介绍下Zookeeper消息的发布订阅功能
Zookeeper的分布式锁实现方式?
Zookeeper怎么保证一致性的
Zookeeper的zab协议(原子广播协议)?
ZAB是以什么算法为基础的?ZAB流程?
Zookeeper的通知机制
Zookeeper脑裂问题
Zookeeper的Paxos算法
Zookeeper的协议有哪些?
Zookeeper如何保证数据的一致性?
Zookeeper的数据存储在什么地方?
Zookeeper从三台扩容到七台怎么做?
三
Hive面试题
说下为什么要使用Hive?Hive的优缺点?Hive的作用是什么?
说下Hive是什么?跟数据仓库区别?
Hive架构
Hive内部表和外部表的区别?
为什么内部表的删除,就会将数据全部删除,而外部表只删除表结构?为什么用外部表更好?
Hive建表语句?创建表时使用什么分隔符?
Hive删除语句外部表删除的是什么?
Hive数据倾斜以及解决方案
Hive如果不用参数调优,在map和reduce端应该做什么
Hive的用户自定义函数实现步骤与流程
Hive的三种自定义函数是什么?实现步骤与流程?它们之间的区别?作用是什么?
Hive的cluster by、sort bydistribute by、orderby区别?
Hive分区和分桶的区别
Hive的执行流程
Hive SQL转化为MR的过程?
Hive SQL优化处理
Hive的存储引擎和计算引擎
Hive的文件存储格式都有哪些
Hive中如何调整Mapper和Reducer的数目
介绍下知道的Hive窗口函数,举一些例子
Hive的count的用法
Hive的union和unionall的区别
Hive的join操作原理,leftjoin、right join、inner join、outer join的异同?
Hive如何优化join操作
Hive的mapjoin
Hive语句的运行机制,例如包含where、having、group by、orderby,整个的执行过程?
Hive使用的时候会将数据同步到HDFS,小文件问题怎么解决的?
Hive Shuffle的具体过程
Hive有哪些保存元数据的方式,都有什么特点?
Hive SOL实现查询用户连续登陆,讲讲思路
Hive的开窗函数有哪些
Hive存储数据吗
Hive的SOL转换为MapReduce的过程?
Hive的函数:UDF、UDAF、UDTF的区别?
UDF是怎么在Hive里执行的
Hive优化
row_number,rank,dense_rank的区别
Hive count(distinct)有几个reduce,海量数据会有什么问题
HQL:行转列、列转行
一条HQL从代码到执行的过程
了解Hive SQL吗?讲讲分析函数?
分析函数中加Order By和不加Order By的区别?
Hive优化方法
Hive里metastore是干嘛的
HiveServer2是什么?
Hive表字段换类型怎么办
parquet文件优势
四
Flume面试题
介绍下Flume
Flume架构
Flume有哪些Source
说下Flume事务机制
介绍下Flume采集数据的原理?底层实现?
Flume如何保证数据的可靠性
Flume传输数据时如何保证数据一致性(可靠性)
Flume拦截器
如何监控消费型Flume的消费情况
Kafka和Flume是如何对接的?
为什么要使用Flume进行数据采集
五
Kafka面试题
介绍下Kafka,Kafka的作用?Kafka的组件?适用场景?
Kafka作为消息队列,它可解决什么样的问题?
说下Kafka架构
说下Kafka的特点,优缺点
Kafka相比于其它消息组件有什么好处?
Kafka生产者与消费者
Kafka分区容错性
Kafka的消费端的数据一致性
Kafka的leader挂掉之后处理方法
说下Kafka的ISR机制
Kafka的选举机制
Kafka的ISR、OSR和ACK介绍,ACK分别有几种值?
Kafka的工作原理?
Kafka怎么保证数据不丢失,不重复?
Kafka分区策略
Kafka如何尽可能保证数据可靠性?
Kafka数据丢失怎么处理?
Kafka如何保证全局有序?
牛产者消费者模式与发布订阅模式有何异同?
Kafka的消费者组是如何消费数据的
Kafka的offset管理
Kafka为什么同一个消费者组的消费者不能消费相同的分区?
如果有一条offset对应的数据,消费完成之后,手动提交失败,如何处理?
正在消费一条数据,Kafka挂了,重启以后,消费的offset是哪一个
Kafka支持什么语义,怎么实现ExactlyOnce?
Kafka的消费者和消费者组有什么区别?为什么需要消费者组?
Kafka producer的写入数据过程?
Kafka producer的ack设署
Kafka的ack机制,解决了什么问题?
Kafka读取消息是推还是拉的模式?有什么好?
Kafka如何实现高吞吐的原理?
说下Kafka中的Partition?
Kafka是如何进行数据备份的?
Kafka里面存的数据格式是什么样的?
Kafka是如何清理过期文件的?
Kafka的一条message中包含了哪些信息?
Kafka如何保证数据的ExactlyOnce?
Kafka消费者怎么保证ExactlyOnce
Kafka监控实现?
Kafka中的数据能彻底删除吗?
Kafka复制机制?
Kafka分区多副本机制?
Kafka分区分配算法
Kafka蓄水池机制
Kafka如何实现享等性?
Kafka的offset存在哪?
Kafka中如何保证数据一致性?
Kafka新旧API区别
Kafka消息在磁盘上的组织方式
Kafka在哪些地方会有选举过程,使用什么工具支持选举?
Kafka搭建过程要配置什么参数?
Kafka的单播和多播
Kafka的高水位和Leader Epoch
Kafka的分区器、拦截器、序列化器?
Kafka连接Spark Streaming的几种方式
Kafka的生成者客户端有几个线程?
Kafka怎么防止脑裂
Kafka高可用体现在哪里
Zookeeper在Kafka的作用
六
HBase面试题
介绍下HBase
HBase优缺点
说下HBase原理
介绍下HBase架构
HBase读写数据流程
HBase的读写缓存
在删除HBase中的一个数据的时候,它什么时候真正的进行删除呢?当你进行删除操作,它是立马就把数据删除掉了吗?
HBase中的二级索引
HBase的RegionServer宕机以后怎么恢复的?
HBase的一个region由哪些东西组成?
HBase高可用怎么实现的?
为什么HBase适合写多读少业务?
列式数据库的适用场景和优势?列式存储的特点?
HBase的rowkey设计原则
HBase的rowkey为什么不能超过一定的长度?为什么要唯一?rowkey太长会影响Hfile的存储是吧?
HBase的RowKey设置讲究有什么原因
HBase的大合并、小合并是什么?
HBase和关系型数据库(传统数据库)的区别(优点)?
HBase数据结构
HBase为什么随机查询很快?
HBase的LSM结构
HBase的Get和Scan的区别和联系?
HBase数据的存储结构(底层存储结构)
HBase数据compact流程?
HBase的预分区
HBase的热点问题
HBase的memstore冲刷条件
HBase的MVCC
HBase的大合并与小合并,大合并是如何做的?为什么要大合并
既然HBase底层数据是存储在HDFS上,为什么不直接使用HDFS,而还要用HBase
HBase和Phoenix的区别
HBase支持SQL操作吗
HBase适合读多写少还是写多读少
HBase表设计
Region分配
HBase的Region切分
七
Spark面试题
Spark的任务执行流程
Spark的运行流程
Spark的作业运行流程是怎么样的?
Spark的特点
Spark源码中的任务调度
Spark作业调度
Spark的架构
Spark的使用场景
Spark on standalone模型、YARN架构模型(画架构图)
Spark的yarn-cluster涉及的参数有哪些?
Spark提交job的流程
Spark的阶段划分
Spark处理数据的具体流程说下
Sparkjoin的分类
Spark map join的实现原理
介绍下Spark Shuffle及其优缺点
什么情况下会产生Spark Shuffle?
为什么要Spark Shuffle?
Spark为什么快?
Spark为什么适合迭代处理?
Spark数据倾斜问题,如何定位,解决方案
Spark的stage如何划分?在源码中是怎么判断属于Shuffle Map Stage或Result Stage的?
Spark join在什么情况下会变成窄依赖?
Spark的内存模型?
Spark分哪几个部分(模块)?分别有什么作用(做什么,自己用过哪些,做过什么)?
RDD的宽依赖和窄依赖,举例一些算子
Spark SQL的GroupBy会造成窄依赖吗?
GroupBy是行动算子吗
Spark的宽依赖和窄依赖,为什么要这么划分?
说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?常用的列举一些,说下算子原理
Spark的哪些算子会有shuffle过程?
Spark有了RDD,为什么还要有Dataform和DataSet?
Spark的RDD、DataFrame、DataSet、DataStream区别?
Spark的Job、Stage、Task分别介绍下,如何划分?
Application、job、Stage、task之间的关系
Stage内部逻辑
为什么要根据宽依赖划分Stage?为
什么要划分Stage
Stage的数量等于什么
对RDD、DAG和Task的理解
DAG为什么适合Spark?
介绍下Spark的DAG以及它的生成过程
DAGScheduler如何划分?干了什么活?
Spark容错机制?
RDD的容错
Executor内存分配?
Spark的batchsize,怎么解决小文件合并问题?
Spark参数(性能)调优
介绍一下Spark怎么基于内存计算的
说下什么是RDD(对RDD的理解)?RDD有哪些特点?说下知道的RDD算子
RDD底层原理
RDD属性
RDD的缓存级别?
Spark广播变量的实现和原理?
reduceByKey和groupByKey的区别和作用?
reduceByKey和reduce的区别?
使用reduceByKey出现数据倾斜怎么办?
Spark SQL的执行原理?
Spark SQL的优化?
说下Spark checkpoint
Spark SQL与DataFrame的使用?
Sparksql自定义函数?怎么创建DataFrame?
HashPartitioner和RangePartitioner的实现
Spark的水塘抽样
DAGScheduler、TaskScheduler、SchedulerBackend实现原理
介绍下Sparkclient提交application后,接下来的流程?
Spark的几种部署方式
在Yarn-client情况下,Driver此时在哪
Spark的cluster模式有什么好处
Driver怎么管理executor
Spark的map和flatmap的区别?
Spark的cache和persist的区别?它们是transformaiton算子还是action算子?
Saprk Streaming从Kafka中读取数据两种方式?
Spark Streaming的工作原理?
Spark Streaming的DStream和DStreamGraph的区别?
Spark输出文件的个数,如何合并小文件?
Spark的driver是怎么驱动作业流程的?
Spark SQL的劣势?
介绍下Spark Streaming和Structed Streaming
Spark为什么比Hadoop速度快?
DAG划分Spark源码实现?
Spark Streaming的双流join的过程,怎么做的?
Spark的Block管理
Spark怎么保证数据不丢失
Spark SQL如何使用UDF?
Spark温度二次排序
Spark实现wordcount
Spark Streaming怎么实现数据持久化保存?
Spark SQL读取文件,内存不够使用,如何处理?
Spark的lazy体现在哪里?
Spark中的并行度等于什么
Spark运行时并行度的设署
Spark SQL的数据倾斜
Spark的exactly-once
Spark的RDD和partition的联系
park 3.0特性
Spark计算的灵活性体现在哪里
八
Flink面试题
Flink架构
Flink的窗口了解哪些,都有什么区别,有哪几种?如何定义?
Flink窗口函数,时间语义相关的问题
介绍下Flink的watermark(水位线),watermark需要实现哪个实现类,在何处定义?有什么作用?
Flink的窗口(实现)机制
说下Flink的CEP
说一说Flink的Checkpoint机制
Flink的Checkpoint底层如何实现的?savepoint和checkpoint有什么区别?
Flink的Checkpoint流程
Flink Checkpoint的作用
Flink中Checkpoint超时原因
Flink的ExactlyOnce语义怎么保证?
Flink的端到端ExactlyOnce
Flink的水印(Watermark),有哪几种?
Flink的时间语义
Flink相比于其它流式处理框架的优点?
Flink和Spark的区别?什么情况下使用Flink?有什么优点?
Flink backPressure反压机制,指标监控你是怎么做的?
Flink如何保证一致性?
Flink支持JobMaster的HA啊?原理是怎么样的?
如何确定Flink任务的合理并行度?
Flink任务如何实现端到端一致?
Flink如何处理背(反)压?
Flink解决数据延迟的问题
Flink消费kafka分区的数据时flink件务并行度之间的关系
使用flink-client消费kafka数据还是使用flink-connector消费
如何动态修改Flink的配置,前提是Flink不能重启
Flink流批一体解释一下
说一下Flink的check和barrier
说一下Flink状态机制
Flink广播流
Flink实时topN
在实习中一般都怎么用Flink
Savepoint知道是什么吗
为什么用Flink不用别的微批考虑过吗
解释一下啥叫背压
Flink分布式快照
Flink SQL解析过程
Flink on YARN模式
Flink如何保证数据不丢失
九
数据仓库面试题
介绍下数据仓库
数仓的基本原理
数仓架构
数据仓库分层(层级划分),每层做什么?分层的好处?
数据分层是根据什么?
数仓分层的原则与思路
数仓建模常用模型吗?区别、优缺点?
星型模型和雪花模型的区别?应用场景?优劣对比
数仓建模有哪些方式?
数仓建模的流程?
维度建模的步骤,如何确定这些维度的
维度建模和范式建模区别
维度表和事实表的区别?
什么是ER模型?
OLAP、OLTP解释(区别)三范式是什么,举些例子
维度设计过程,事实设计过程
维度设计中有整合和拆分,有哪些方法,并详细说明
事实表设计分几种,每一种都是如何在业务中使用
单事务事实表、多事务事实表区别与作用
说下一致性维度、一致性事实、总线矩阵
从ODS层到DW层的ETL,做了哪些工作?
数据仓库与(传统)数据库的区别?
数据质量是怎么保证的,有哪些方法保证
怎么衡量数仓的数据质量,有哪些指标
增量表、全量表和拉链表
十
综合部分面试题
Saprk和Flink的区别
Flink和Spark Streaming处理数据的时候,分别怎么做?各自优势点?
为什么你觉得Flink比Spark Streaming好?
SaprkStreaming相比Flink有什么优点
Flink和Spark对于批处理的区别?
Flink+Kafka怎么保证精准一次性消费
Hive和MySQL不同?
Hive与HBase的区别?
Hive与HDFS的关系与区别?
Spark和Hive的区别
Spark和Hive的联系
Hive和传统数据库的区别
Spark和Hive对比,谁更好,你觉得为什么
MySQL和HBase的对比(区别)
Spark和Hadoop之间的区别
Spark为什么比MapReduce运行快?原因有哪些?
Spark和MapReduce之间的区别?各自优缺点?
Spark相比MapReduce的优点
是不是用了Spark就不需要Hadoop了?
SparkStreaming和Storm的区别
Flume和Kafka的区别?
为什么使用Flume+Kafka?
Flume和Kafka是怎么配置的
Spark Streaming与Kafka集成,如何保证Exactly Once语义
Spark Shuffle和MapReduce Shuffle的区别?说下各自的特点和过程
若Spark要保存数据到HDFS上,要用什么算子?
Hive SQL和Spark SOL的区别?各自优势和不足?为什么不用Spark SQL替代Hive SOL?
分布式存储系统和分布式计算框架区别?
ETL过程?
数据湖和数据仓库的区别
离线处理和实时处理的区别
实时数仓和离线数仓的区别?
Hadoop (HDFS)和MySQL的区别?
说说Storm、Flink、Spark的区别,各自的优缺点,适用场景
HDFS与HBase有什么关系?
存储格式的选择,行式存储与列式存储的优劣
Hive、HBase、HDFS之间的关系
Hive中的数据在哪存放,MySQL的在哪存放?
当数据量非常多,HDFS扛不住Flume采集的压力怎么办
Hadoop和gp(GreenPlum)区别
MapReduce/Spark手撕WordCount
为什么要使用Scala开发Spark而不使用python
Scala和Java有什么区别
十一
数据库面试题
数据库中的事务是什么,MySQL中是怎么实现的
MySQL事务的特性?
数据库事务的隔离级别?解决了什么问题?默认事务隔离级别?
脏读,幻读,不可重复读的定义
MySQL怎么实现可重复读?
数据库第三范式和第四范式区别?
MySQL的存储引擎?
数据库有哪些锁?
说下悲观锁、乐观锁
分布式数据库是什么?
死锁产生的条件是什么?如何预防死锁?
介绍下数据库的ioin(内连接,外连接,全连接),内连接和外连接(左,右连接)的区别
MySQL的join过程
MySQL有哪些存储引擎?
数据库中存储引擎MvlSAM与InnoDB的区别
Mylsam适用于什么场景?
InnoDB和Mvlsam针对读写场景?
MySQL Innodb实现了哪个隔离级别?
InnoDB数据引擎的特点
InnoDB用什么索引
Hash索引缺点
数据库索引的类型,各有什么优缺点?
MySQL的索引有哪些?索引如何优化?
有哪些数据结构可以作为索引呢?
B树与B+树的区别?
为什么使用B+树作为索引结构?
不使用B+树,可以用那个数据类型实现一个索引结构
介绍下MySQL的联合索引联合索使用原则
数据库有必要建索引吗?
MySQL缺点?
什么是脏读?怎么解决?
为什么要有三大范式,建数据库时一定要遵循吗?
数据库一般对哪些列建立索引?索引的数据结构?
MySOL中索引的建立需要考虑哪些问题
关系型数据库与非关系型数据库区别
MySQL与Redis区别
列式数据库和行式数据库优劣比对
除了UTF-8还有什么编码格式
布隆过滤器的基本原理是什么?局限性是什么?使用什么方法可以增加删除的功能?
你在哪些场景下使用了布隆过滤器?
SQL慢查询的解决方案(优化)?
聚簇索引、非聚簇索引说一下
哈希索引和B+相比的优势和劣势?
MVCC知道吗