大数据面试题V3.0    一、前言    大家好,我是蓦然。    距离大数据面试题V2.0过去三个多月,V3.0题目基本上就整理好了,所有面试题来源于牛客网上牛友们分享的面经,我主要是整理汇总。    2.0版本时,面试题整理了401道题,大约整理了500篇面试题,现在3.0,把当时剩下的370+也整理完了,虽然面经数量有370+,但新题基本上不多了,整理完,共480道题。很多都是以前问过的,所以新增的题目不多。之前预计是7月份左右3.0才能整理好,不过疫情在家隔离了一段时间,除去居家办公,剩余时间也相对多了不少,抓紧时间就把3.0整理完了,现在在慢慢整理一套比较完整的大数据开发学习视频,这个就后续再说吧。    下面进入正题。   二、480道大数据面试题     大数据面试题V3.0,480道面试真题,来源:牛客网大数据面经约850篇面经。   后面字数是指加上答案的,这里把题目分享给大家,大家有时间可以自己整理。    给大家提个醒:如果是面试某团的,记得一定要在牛客上看看别人分享的面经,你会发现,某团的“题库”好像库存量有点小,哈哈,遇到多次一二面问一样的题目。       Hadoop面试题(约5.5w字)        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面试题(约2.6w字)                 介绍下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面试题(约3.3w字)                 说下为什么要使用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面试题(约0.5w字)                 介绍下Flume                    Flume架构                    Flume有哪些Source                    说下Flume事务机制                    介绍下Flume采集数据的原理?底层实现?                    Flume如何保证数据的可靠性                    Flume传输数据时如何保证数据一致性(可靠性)                    Flume拦截器                    如何监控消费型Flume的消费情况                    Kafka和Flume是如何对接的?                    为什么要使用Flume进行数据采集               Kafka面试题(约5.5w字)                 介绍下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面试题(约2.8w字)                 介绍下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面试题(约9.8w字)                 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面试题(约4.7w字)                 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如何保证数据不丢失               数仓面试题(约3.6w字)                 介绍下数据仓库                    数仓的基本原理                    数仓架构                    数据仓库分层(层级划分),每层做什么?分层的好处?                    数据分层是根据什么?                    数仓分层的原则与思路                    数仓建模常用模型吗?区别、优缺点?                    星型模型和雪花模型的区别?应用场景?优劣对比                    数仓建模有哪些方式?                    数仓建模的流程?                    维度建模的步骤,如何确定这些维度的                    维度建模和范式建模区别                    维度表和事实表的区别?                    什么是ER模型?                    OLAP、OLTP解释(区别)三范式是什么,举些例子                    维度设计过程,事实设计过程                    维度设计中有整合和拆分,有哪些方法,并详细说明                    事实表设计分几种,每一种都是如何在业务中使用                    单事务事实表、多事务事实表区别与作用                    说下一致性维度、一致性事实、总线矩阵                    从ODS层到DW层的ETL,做了哪些工作?                    数据仓库与(传统)数据库的区别?                    数据质量是怎么保证的,有哪些方法保证                    怎么衡量数仓的数据质量,有哪些指标                    增量表、全量表和拉链表               数据库面试题(约3.9w字)                 数据库中的事务是什么,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知道吗?               三、结语     从牛客网讨论区大数据面试题中整理出来的面试题(应该涵盖面经中大多数的题型了)基本上就是上面的内容了,从上述面试题也可以大概看出来,Hadoop、Spark被问得最多,其次是Hive、Kafka、Flink这些,Flume相对来说,基本上很少看到,面经整理的多了,基本上就知道了面试哪些是重点,哪些题型会比较多,面试官会从哪几个方面去问。    写代码是个有意思但也有点枯燥的事情,要把代码当做一叠叠RMB,每一行代码都是RMB,这样写起来就贼爽了,哈哈。    祝大家面试顺利,加油。    大数据面试题V4.0预计应该要明年了,讨论区大数据面经暂时没啥更新了。。。。。害    
点赞 182
评论 33
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务