大数据面试题V2.0,641页,面试题来源:牛客大数据面经
大家好,我是蓦然
大数据面试题V2.0共401道题,641页,近39w字,图片数量就没计算了,有的题目就是展开来概述了,所以不小心就页数有点超标,初稿刚出来时预计是300-400页。
下面大概介绍下这版面试题的大概内容,主要分为以下几部分:
Hadoop面试题:80道
Zookeeper面试题:20道
Hive面试题:29道
Flume面试题:9道
Kafka面试题:51到
HBase面试题:33道
Spark面试题:81道
Flink面试题:27道
数仓面试题:21道
综合面试题:32道
数据库(MySQL)面试题:18道
总共401道题
一、Hadoop面试题
1、Hadoop基础
介绍下Hadoop
Hadoop的特点
说下Hadoop生态圈组件及其作用
Hadoop主要分哪几个部分?他们有什么作用?
Hadoop1x,2x,3x的区别
Hadoop集群工作时启动哪些进程?它们有什么作用?
搭建Hadoop集群的xml文件有哪些?
Hadoop的checkpoint流程
Hadoop的默认块大小是多少?为什么要设置这么大?
Block划分的原因
Hadoop常见的压缩算法?
Hadoop作业提交到YARN的流程?
Hadoop的Combiner的作用
Hadoop序列化和反序列化
Hadoop的运行模式
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快照
2、MapReduce部分
介绍下MapReduce
MapReduce优缺点
MapReduce架构
MapReduce工作原理
MapReduce哪个阶段最费时间
MapReduce中的Combine是干嘛的?有什么好处?
MapReduce为什么一定要有环型缓冲区
MapReduce为什么一定要有Shuffle过程
MapReduce的Shuffle过程及其优化
MapReduce Shuffle的排序算法
MapReduce的数据处理过程
Map join的原理(实现)?应用场景?
Reduce join如何执行(原理)
MapReduce为什么不能产生过多小文件
MapReduce分区及作用
Map的分片有多大
MapReduce join两个表的流程?
手撕一段简单的MapReduce程序
reduce任务什么时候开始?
MapReduce的reduce使用的是什么排序?
MapReduce怎么确定MapTask的数量?
MapReduce的map进程和reducer进程的jvm垃圾回收器怎么选择可以提高吞吐量?
MapReduce的task数目划分
MapReduce作业执行的过程中,中间的数据会存在什么地方?不会存在内存中么?
Mapper端进行combiner之后,除了速度会提升,那从Mapper端到Reduece端的数据量会怎么变?
map输出的数据如何超出它的小文件内存之后,是落地到磁盘还是落地到HDFS中?
Map到Reduce默认的分区机制是什么?
结合wordcount述说MapReduce,具体各个流程,map怎么做,reduce怎么做
MapReduce数据倾斜产生的原因及其解决方案
MapReduce运行过程中会发生OOM,OOM发生的位置?
MapReduce用了几次排序,分别是什么?
MapReduce压缩方式
MapReduce中怎么处理一个大文件
3、YARN部分
介绍下YARN
YARN有什么优势,能解决什么问题?
YARN容错机制
YARN高可用
YARN调度器
YARN中Container是如何启动的?
YARN的改进之处,Hadoop3.x相对于Hadoop2.x?
YARN监控
二、Zookeeper面试题
Zookeeper的选举策略,leader和follower的区别?
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如果不用参数调优,在map和reduce端应该做什么
Hive的用户自定义函数实现步骤与流程
Hive的三种自定义函数是什么?实现步骤与流程?它们之间的区别?作用是什么?
Hive的cluster by、sortby、distribute by、order by区别?
Hive分区和分桶的区别
Hive的执行流程
Hive SQL转化为MR的过程?
Hive SOL优化处理
Hive的存储引擎和计算引擎
Hive中如何调整Mapper和Reducer的数目
介绍下知道的Hive窗口函数,举一些例子
Hive的count的用法
Hive的join操作原理,left join、right join、inner join、outer join的异同?
Hive如何优化join操作
Hive的map join
Hive语句的运行机制,例如包含wherehaving、groupby、orderby,整个的执行过程?
Hive使用的时候会将数据同步到HDFS,小文件问题怎么解决的?
Hive Shuffle的具体过程
Hive有哪些保存元数据的方式,都有什么特点?
Hive SOL实现查询用户连续登陆,讲讲思路
Hive的开窗函数有哪些
四、Flume面试题
介绍下Flume
Flume架构
说下Flume事务机制
介绍下Flume采集数据的原理?底层实现?
Flume如何保证数据的可靠性
Flume传输数据时如何保证数据一致性(可靠性)
Flume拦截器
如何监控消费型Flume的消费情况
Kafka和Flume是如何对接的?
五、Kafka面试题
介绍下Kafka,Kafka的作用?Kafka的组件?适用场景?
说下Kafka架构
说下Kafka的特点,优缺点
Kafka相比于其它消息组件有什么好处?
说下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的ack设置
Kafka读取消息是推还是拉的模式?有什么好处?
Kafka如何实现高吞吐的原理?
说下Kafka中的Partition?
Kafka是如何进行数据备份的?
Kafka里面存的数据格式是什么样的?
Kafka是如何清理过期文件的?
Kafka的一条message中包含了哪些信息?
Kafka如何保证数据的Exactly Once?
Kafka消费者怎么保证Exactly Once
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怎么防止脑裂
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适合读多写少还是写多读少
七、Spark面试题
Spark的任务执行流程
Spark的运行流程
Spark的特点
Spark源码中的任务调度
Spark作业调度
Spark的架构
Spark的使用场景
Spark on standalone模型、YARN架构模型(画架构图)
Spark的yarn-cluster涉及的参数有哪些?
Spark提交job的流程
Spark的阶段划分
Spark处理数据的具体流程说下
Spark join的分类
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会造成窄依赖吗?
Spark的宽依赖和窄依赖,为什么要这么划分?
说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和 Action?常用的列举一些,说下算子原理
Spark的哪些算子会有shuffle过程?
Spark有了RDD,为什么还要有Dataform和DataSet?
Spark的RDD、DataFrame、DataSet、DataStream区别?
Spark的Job、Stage、Task分别介绍下,如何划分?
为什么要根据宽依赖划分Stage?
对RDD、DAG和Task的理解
DAG为什么适合Spark?
介绍下Spark的DAG以及它的生成过程
DAGScheduler如何划分?干了什么活?
Spark容错机制?
Executor内存分配?
Spark的batchsize,怎么解决小文件合并问题?
Spark参数(性能)调优
说下什么是RDD(对RDD的理解)?RDD有哪些特点?说下知道的RDD算子 RDD底层原理
RDD属性
RDD的缓存级别?
Spark广播变量的实现和原理?
reduceByKey和groupByKey的区别和作用?
reduceByKev和reduce的区别?
使用reduceByKey出现数据倾斜怎么办?
Spark SQL的执行原理?
Spark SQL的优化?
说下Spark checkpoint
Spark SQL与DataFrame的使用?
Spark sql自定义函数?怎么创建DataFrame?
HashPartitioner和RangePartitioner的实现
Spark的水塘抽样
DAGScheduler、TaskScheduler、SchedulerBackend实现原理
介绍下Sparkclient提交application后,接下来的流程?
Spark的几种部署方式
在Yarn-client情况下,Driver此时在哪
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为什么速度快?
DAG划分Spark源码实现?
Spark Streaming的双流join的过程,怎么做的?
Spark的Block管理
Spark怎么保证数据不丢失
Spark SQL如何使用UDF?
Spark温度二次排序
Spark实现wordcount
Spark Streaming怎么实现数据持久化保存?
Spark SQL读取文件,内存不够使用,如何处理?
Spark的lazy体现在哪里?
Spark运行时并行度的设置
Spark SQL的数据倾斜
八、Flink面试题
Flink架构
Flink的窗口了解哪些,都有什么区别,有哪几种?如何定义?
Flink窗口函数,时间语义相关的问题
介绍下Flink的watermark(水位线),watermark需要实现哪个实现类,在何处定义?有什么作用?
Flink的窗口(实现)机制说下
Flink的CEP
说一说Flink的checkpoint机制
Flink的Checkpoint底层如何实现的?savepoint和checkpoint有什么区别?
Flink的checkpoint流程
Flink的Exactly Once语义怎么保证?
Flink的端到端Exactly Once
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
九、数据仓库面试题
介绍下数据仓库
数仓的基本原理
数仓架构
数据仓库分层(层级划分),每层做什么?分层的好处?
数据分层是根据什么?
数仓建模常用模型吗?区别、优缺点?
星型模型和雪花模型的区别?应用场景?优劣对比
数仓建模的流程?
维度建模的步骤,如何确定这些维度的
维度建模和范式建模区别
OLAP、OLTP解释(区别)
三范式是什么,举些例子
维度设计过程,事实设计过程
维度设计中有整合和拆分,有哪些方法,并详细说明
事实表设计分几种,每一种都是如何在业务中使用
单事务事实表、多事务事实表区别与作用
说下一致性维度、一致性事实、总线矩阵
从ODS层到DW层的ETL,做了哪些工作?
数据仓库与(传统)数据库的区别?
数据质量是怎么保证的,有哪些方法保证
怎么衡量数仓的数据质量,有哪些指标
十、综合部分面试题
Saprk和Flink的区别
Flink和Spark Streaming处理数据的时候,分别怎么做?各自优势点?
为什么你觉得Flink比Spark Streaming好?
SaprkStreaming相比Flink有什么优点
Flink和Spark对于批处理的区别?
Hive和MySQL不同?
Hive与HBase的区别?
Hive与HDFS的关系与区别?
Spark和Hive的区别
Hive和传统数据库的区别
MySQL和HBase的对比(区别)
Spark和Hadoop之间的区别
Spark为什么比MapReduce运行快?原因有哪些?
Spark和MapReduce之间的区别?各自优缺点?
Spark相比MapReduce的优点
是不是用了Spark就不需要Hadoop了?
Spark Streaming和Storm的区别
Flume和Kafka的区别?
为什么使用Flume+Kafka?
Spark Streaming与Kafka集成,如何保证Exactly Once语义
Spark Shuffle和MapReduce Shuffle的区别?说下各自的特点和过程
若Spark要保存数据到HDFS上,要用什么算子?
Hive SOL和Spark SOL的区别?各自优势和不足?为什么不用Spark SOL替代Hive SQL?
分布式存储系统和分布式计算框架区别?
ETL过程?
实时数仓和离线数仓的区别?
Hadoop(HDFS)和MySOL的区别?
说说Storm、FlinkSpark的区别,各自的优缺点,适用场景
HDFS与HBase有什么关系?
存储格式的选择,行式存储与列式存储的优尖
Hive、HBase、HDFS之间的关系
Scala和Java有什么区别
十一、数据库(MySQL)面试题
数据库中的事务是什么,MySQL中是怎么实现的
MySOL事务的特性?
数据库事务的隔离级别?解决了什么问题?默认事务隔离级别?
数据库第三范式和第四范式区别?
MySQL的存储引擎?
数据库有哪些锁?
分布式数据库是什么?
死锁产生的条件是什么?如何预防死锁?
介绍下数据库的join(内连接、外连接、全连接),内连接和外连接(左、右连接)的区别
MySQL的join过程
数据库中存储引擎MylSAM与InnoDB的区别
数据库索引的类型,各有什么优缺点?
MySQL的索引有哪些?索引如何优化?
介绍下MySOL的联合索引
数据库有必要建索引吗?
MySQL缺点?
什么是脏读?
列式数据库和行式数据库优劣比对
十二、结语
面试题总结是一个长期工作,面试不停,这份面试题总结就不会停。以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,就只能看自己了,毕竟每个人简历、实习、项目等都不一样。