logo资料库

【面试宝典】2021年超全超详细的最新大数据开发面试题,附答案解析(一版).pdf

第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
资料共44页,剩余部分请下载后查看
持续更新中…
Hadoop
1. 请说下HDFS读写流程
2. HDFS在读取文件的时候,如果其中一个块突然损坏了怎么办
3. HDFS在上传文件的时候,如果其中一个DataNode突然挂掉了怎么办
4. NameNode在启动的时候会做哪些操作
5. Secondary NameNode了解吗,它的工作机制是怎样的
6. Secondary NameNode不能恢复NameNode的全部数据,那如何保证NameNo
7. 在NameNode HA中,会出现脑裂问题吗?怎么解决脑裂
8. 小文件过多会有什么危害,如何避免
9. 请说下HDFS的组织架构
10. 请说下MR中Map Task的工作机制
11. 请说下MR中Reduce Task的工作机制
12. 请说下MR中shuffle阶段
13. shuffle阶段的数据压缩机制了解吗
14. 在写MR时,什么情况下可以使用规约
15. yarn 集群的架构和工作原理知道多少
16. yarn 的任务提交流程是怎样的
17. yarn 的资源调度三种模型了解吗
Hive
1. hive 内部表和外部表的区别
2. hive 有索引吗
3. 运维如何对hive进行调度
4. ORC、Parquet等列式存储的优点
5. 数据建模用的哪些模型?
6. 为什么要对数据仓库分层?
7. 使用过Hive解析JSON串吗
8. sort by 和 order by 的区别
9. 怎么排查是哪里出现了数据倾斜
10. 数据倾斜怎么解决
Flink
1. Flink 的容错机制(checkpoint)
2. Flink 中的 Time 有哪几种
3. 对于迟到数据是怎么处理的
4. Flink 的运行必须依赖 Hadoop组件吗
5. Flink集群有哪些角色?各自有什么作用
6. Flink 资源管理中 Task Slot 的概念
7. Flink的重启策略了解吗
8. Flink是如何保证Exactly-once语义的
9. Flink是如何处理反压的
10. Flink中的状态存储
11. Flink是如何支持批流一体的
12. Flink的内存管理是如何做的
11. hive 小文件过多怎么解决
12. hive优化有哪些?
Spark
1. 通常来说,Spark与MapReduce相比,Spark运行效率更高。请说明效率更高来源于Sp
2. hadoop和spark使用场景?
3. spark如何保证宕机迅速恢复?
4. hadoop和spark的相同点和不同点?
5. RDD持久化原理?
6. checkpoint检查点机制?
7. checkpoint和持久化机制的区别?
8. RDD机制理解吗?
9. Spark streaming以及基本工作原理?
10. DStream以及基本工作原理?
11. spark有哪些组件?
12. spark工作机制?
13. 说下宽依赖和窄依赖
14. Spark主备切换机制原理知道吗?
15.spark解决了hadoop的哪些问题?
16. 数据倾斜的产生和解决办法?
17. 你用sparksql处理的时候, 处理过程中用的dataframe还是直接写的sql?为什么
18. 现场写一个笔试题
19. RDD中reduceBykey与groupByKey哪个性能好,为什么
20. Spark master HA主从切换过程不会影响到集群已有作业的运行,为什么
21. spark master使用zookeeper进行ha,有哪些源数据保存到Zookeeper
Kafka
1. 为什么要使用 kafka?
2. Kafka消费过的消息如何再消费?
3. kafka的数据是放在磁盘上还是内存上,为什么速度会快?
4. Kafka数据怎么保障不丢失?
5. 采集数据为什么选择kafka?
6. kafka 重启是否会导致数据丢失?
7. kafka 宕机了如何解决?
8. 为什么Kafka不支持读写分离?
9. kafka数据分区和消费者的关系?
10. kafka的数据offset读取流程
11. kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序?
12. Kafka消息数据积压,Kafka消费能力不足怎么处理?
13. Kafka单条日志传输大小
Hbase
1. Hbase是怎么写数据的?
2. HDFS和HBase各自使用场景
3. Hbase的存储结构
4. 热点现象(数据倾斜)怎么产生的,以及解决方法有哪些
5. HBase的 rowkey 设计原则
6. HBase的列簇设计
7. HBase 中 compact 用途是什么,什么时候触发,分为哪两种,有什么区别
业务方面
1. 在处理大数据过程中,如何保证得到期望值
2. 你感觉数仓建设中最重要的是什么
3. 数据仓库建模怎么做的
4. 数据质量怎么监控
5. 数据分析方法论了解过哪些?
本文档来自公众号:五分钟学大数据 时间 2020-12-18 描述 创建 2021-01-17 新增 spark 面试题 2021-01-18 新增 kafka 面试题 2021-01-20 新增 hbase 面试题 2021-01-30 新增 flink 面试题 版本 V1.0 V1.2 V1.3 V1.4 V1.5 复习大数据面试题,看这一套就够了! 超全超详细的最新大数据开发面试题 持续更新中… 文章更新首发于公众号:五分钟学大数据 此套面试题来自于各大厂的真实面试题及常问的知识点,如果能理解吃透这些问题,你 的大数据能力将会大大提升,进入大厂指日可待 本套面试题分为两版,这两版的面试题有部分重合,区别主要是分类方式不同, 第一版是按照大数据技术进行划分(此版),第二版是按照各大厂进行划分(另一 版,可在公众号【五分钟学大数据】后台发送 面试宝典 获取)。个人建议:可 以先从第一版按照技术点进行专项复习,然后在看第二版大厂真题进行知识融会 贯通,全面复习。 1
本文档来自公众号:五分钟学大数据 目录 持续更新中 关注公众号:五分钟学大数据,可获取最新版本 Hadoop................................................................................................................................................ 5 1. 请说下 HDFS 读写流程......................................................................................................... 5 2. HDFS 在读取文件的时候,如果其中一个块突然损坏了怎么办..........................................6 3. HDFS 在上传文件的时候,如果其中一个 DataNode 突然挂掉了怎么办........................... 6 4. NameNode 在启动的时候会做哪些操作.............................................................................7 5. Secondary NameNode 了解吗,它的工作机制是怎样的...................................................7 6. Secondary NameNode 不能恢复 NameNode 的全部数据,那如何保证 NameNode 数据 存储安全.....................................................................................................................................8 7. 在 NameNode HA 中,会出现脑裂问题吗?怎么解决脑裂.............................................8 8. 小文件过多会有什么危害,如何避免.................................................................................. 9 9. 请说下 HDFS 的组织架构..................................................................................................... 9 10. 请说下 MR 中 Map Task 的工作机制.............................................................................. 10 11. 请说下 MR 中 Reduce Task 的工作机制..........................................................................11 12. 请说下 MR 中 shuffle 阶段...............................................................................................11 13. shuffle 阶段的数据压缩机制了解吗................................................................................ 12 14. 在写 MR 时,什么情况下可以使用规约........................................................................12 15. yarn 集群的架构和工作原理知道多少........................................................................... 13 16. yarn 的任务提交流程是怎样的....................................................................................... 13 17. yarn 的资源调度三种模型了解吗................................................................................... 14 Hive....................................................................................................................................................15 1. hive 内部表和外部表的区别..............................................................................................15 2. hive 有索引吗...................................................................................................................... 15 3. 运维如何对 hive 进行调度.................................................................................................16 4. ORC、Parquet 等列式存储的优点......................................................................................16 5. 数据建模用的哪些模型?..................................................................................................17 6. 为什么要对数据仓库分层?..............................................................................................18 7. 使用过 Hive 解析 JSON 串吗..............................................................................................18 8. sort by 和 order by 的区别................................................................................................19 9. 怎么排查是哪里出现了数据倾斜..................................................................................... 19 10. 数据倾斜怎么解决............................................................................................................19 11. hive 小文件过多怎么解决................................................................................................19 12. hive 优化有哪些?.............................................................................................................19 Spark..................................................................................................................................................20 1. 通常来说,Spark 与 MapReduce 相比,Spark 运行效率更高。请说明效率更高来源于 Spark 内置的哪些机制?.........................................................................................................20 2. hadoop 和 spark 使用场景?.............................................................................................. 20 3. spark 如何保证宕机迅速恢复?...........................................................................................20 4. hadoop 和 spark 的相同点和不同点?.............................................................................. 20 5. RDD 持久化原理?...............................................................................................................21 6. checkpoint 检查点机制?....................................................................................................21 7. checkpoint 和持久化机制的区别?....................................................................................22 2
本文档来自公众号:五分钟学大数据 8. RDD 机制理解吗?...............................................................................................................22 9. Spark streaming 以及基本工作原理?............................................................................... 23 10. DStream 以及基本工作原理?......................................................................................... 23 11. spark 有哪些组件?...........................................................................................................23 12. spark 工作机制?...............................................................................................................24 13. 说下宽依赖和窄依赖........................................................................................................24 14. Spark 主备切换机制原理知道吗?.................................................................................. 24 15. spark 解决了 hadoop 的哪些问题?................................................................................ 25 16. 数据倾斜的产生和解决办法?....................................................................................... 26 17. 你用 sparksql 处理的时候,处理过程中用的 dataframe 还是直接写的 sql?为什么? ................................................................................................................................................... 26 18. 现场写一个笔试题............................................................................................................26 19. RDD 中 reduceBykey 与 groupByKey 哪个性能好,为什么............................................ 27 20. Spark master HA 主从切换过程不会影响到集群已有作业的运行,为什么................27 21. spark master 使用 zookeeper 进行 ha,有哪些源数据保存到 Zookeeper 里面...........27 Kafka.................................................................................................................................................. 28 1. 为什么要使用 kafka?....................................................................................................... 28 2. Kafka 消费过的消息如何再消费?.....................................................................................28 3. kafka 的数据是放在磁盘上还是内存上,为什么速度会快?.........................................29 4. Kafka 数据怎么保障不丢失?.............................................................................................29 5. 采集数据为什么选择 kafka?............................................................................................31 6. kafka 重启是否会导致数据丢失?....................................................................................31 7. kafka 宕机了如何解决?.................................................................................................... 31 8. 为什么 Kafka 不支持读写分离?.......................................................................................31 9. kafka 数据分区和消费者的关系?.....................................................................................32 10. kafka 的数据 offset 读取流程............................................................................................32 11. kafka 内部如何保证顺序,结合外部组件如何保证消费者的顺序?.......................... 33 12. Kafka 消息数据积压,Kafka 消费能力不足怎么处理?.................................................33 13. Kafka 单条日志传输大小...................................................................................................33 Hbase.................................................................................................................................................33 1. Hbase 是怎么写数据的?....................................................................................................34 2. HDFS 和 HBase 各自使用场景.............................................................................................34 3. Hbase 的存储结构................................................................................................................35 4. 热点现象(数据倾斜)怎么产生的,以及解决方法有哪些.........................................35 5. HBase 的 rowkey 设计原则................................................................................................36 6. HBase 的列簇设计................................................................................................................37 7. HBase 中 compact 用途是什么,什么时候触发,分为哪两种,有什么区别............37 Flink................................................................................................................................................... 38 1. Flink 的容错机制(checkpoint)....................................................................................... 38 2. Flink 中的 Time 有哪几种.................................................................................................38 3. 对于迟到数据是怎么处理的..............................................................................................38 4. Flink 的运行必须依赖 Hadoop 组件吗.............................................................................39 5. Flink 集群有哪些角色?各自有什么作用..........................................................................39 6. Flink 资源管理中 Task Slot 的概念...................................................................................39 3
本文档来自公众号:五分钟学大数据 7. Flink 的重启策略了解吗...................................................................................................... 39 8. Flink 是如何保证 Exactly-once 语义的............................................................................... 40 9. Flink 是如何处理反压的...................................................................................................... 40 10. Flink 中的状态存储............................................................................................................ 41 11. Flink 是如何支持批流一体的............................................................................................41 12. Flink 的内存管理是如何做的............................................................................................41 业务方面...........................................................................................................................................41 1. 在处理大数据过程中,如何保证得到期望值................................................................. 41 2. 你感觉数仓建设中最重要的是什么................................................................................. 41 3. 数据仓库建模怎么做的......................................................................................................42 4. 数据质量怎么监控..............................................................................................................42 5. 数据分析方法论了解过哪些?......................................................................................... 43 4
本文档来自公众号:五分钟学大数据 Hadoop hadoop 中常问的有三块,第一:存储,问到存储,就把 HDFS 相关的知识点拿出 来;第二:计算框架(MapReduce);第三:资源调度框架(yarn) 1. 请说下 HDFS 读写流程 这个问题虽然见过无数次,面试官问过无数次,但是就是有人不能完整的说下来,所以 请务必记住。并且很多问题都是从 HDFS 读写流程中引申出来的 HDFS 写流程 1)client 客户端发送上传请求,通过 RPC 与 namenode 建立通信,namenode 检 查该用户是否有上传权限,以及上传的文件是否在 hdfs 对应的目录下重名,如 果这两者有任意一个不满足,则直接报错,如果两者都满足,则返回给客户端一 个可以上传的信息 2)client 根据文件的大小进行切分,默认 128M 一块,切分完成之后给 namenode 发送请求第一个 block 块上传到哪些服务器上 3)namenode 收到请求之后,根据网络拓扑和机架感知以及副本机制进行文件 分配,返回可用的 DataNode 的地址  注:Hadoop 在设计时考虑到数据的安全与高效, 数据文件默认在 HDFS 上存放三份, 存储策略为本地一份,同机架内其它某一节点上一份, 不同机架的某一节点上一份 4)客户端收到地址之后与服务器地址列表中的一个节点如 A 进行通信,本质上 就是 RPC 调用,建立 pipeline,A 收到请求后会继续调用 B,B 在调用 C,将整个 pipeline 建立完成,逐级返回 client 5)client 开始向 A 上发送第一个 block(先从磁盘读取数据然后放到本地内存缓 存),以 packet(数据包,64kb)为单位,A 收到一个 packet 就会发送给 B,然 后 B 发送给 C,A 每传完一个 packet 就会放入一个应答队列等待应答 6)数据被分割成一个个的 packet 数据包在 pipeline 上依次传输,在 pipeline 反 向传输中,逐个发送 ack(命令正确应答),最终由 pipeline 中第一个 DataNode 节点 A 将 pipelineack 发送给 Client 7)当一个 block 传输完成之后, Client 再次请求 NameNode 上传第二个 block ,namenode 重新选择三台 DataNode 给 client 5
本文档来自公众号:五分钟学大数据 HDFS 读流程 1)client 向 namenode 发送 RPC 请求。请求文件 block 的位置 2)namenode 收到请求之后会检查用户权限以及是否有这个文件,如果都符合, 则会视情况返回部分或全部的 block 列表,对于每个 block,NameNode 都会返 回含有该 block 副本的 DataNode 地址; 这些返回的 DN 地址,会按照集群拓 扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓 扑结构中距离 Client 近的排靠前;心跳机制中超时汇报的 DN 状态为 STALE, 这样的排靠后 3)Client 选取排序靠前的 DataNode 来读取 block,如果客户端本身就是 DataNode,那么将从本地直接获取数据(短路读取特性) 4)底层上本质是建立 Socket Stream(FSDataInputStream),重复的调用父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕 5)当读完列表的 block 后,若文件读取还没有结束,客户端会继续向 NameNode 获取下一批的 block 列表 6)读取完一个 block 都会进行 checksum 验证,如果读取 DataNode 时出现错 误,客户端会通知 NameNode,然后再从下一个拥有该 block 副本的 DataNode 继续读 7)read 方法是并行的读取 block 信息,不是一块一块的读取;NameNode 只 是返回 Client 请求包含块的 DataNode 地址,并不是返回请求块的数据 8) 最终读取来所有的 block 会合并成一个完整的最终文件 2. HDFS 在读取文件的时候,如果其中一个块突然损坏了怎么办 客户端读取完 DataNode 上的块之后会进行 checksum 验证,也就是把客户端读 取到本地的块与 HDFS 上的原始块进行校验,如果发现校验结果不一致,客户端 会通知 NameNode,然后再从下一个拥有该 block 副本的 DataNode 继续读 3. HDFS 在上传文件的时候,如果其中一个 DataNode 突然挂掉了怎 么办 客户端上传文件时与DataNode 建立pipeline 管道,管道正向是客户端向DataNode 发送的数据包,管道反向是 DataNode 向客户端发送 ack 确认,也就是正确接收 6
本文档来自公众号:五分钟学大数据 到数据包之后发送一个已确认接收到的应答,当 DataNode 突然挂掉了,客户端 接收不到这个 DataNode 发送的 ack 确认 ,客户端会通知 NameNode,NameNode 检查该块的副本与规定的不符, NameNode 会通知 DataNode 去复制副本,并将挂掉的 DataNode 作下线处理,不 再让它参与文件上传与下载。 4. NameNode 在启动的时候会做哪些操作 NameNode 数据存储在内存和本地磁盘,本地磁盘数据存储在 fsimage 镜像文件 和 edits 编辑日志文件  首次启动 NameNode 1、格式化文件系统,为了生成 fsimage 镜像文件 2、启动 NameNode (1)读取 fsimage 文件,将文件内容加载进内存 (2)等待 DataNade 注册与发送 block report 3、启动 DataNode (1)向 NameNode 注册 (2)发送 block report (3)检查 fsimage 中记录的块的数量和 block report 中的块的总数是否相同 4、对文件系统进行操作(创建目录,上传文件,删除文件等) (1)此时内存中已经有文件系统改变的信息,但是磁盘中没有文件系统改变的信息,此时 会将这些改变信息写入 edits 文件中,edits 文件中存储的是文件系统元数据改变的信息。  第二次启动 NameNode 1、读取 fsimage 和 edits 文件 2、将 fsimage 和 edits 文件合并成新的 fsimage 文件 3、创建新的 edits 文件,内容为空 4、启动 DataNode 5. Secondary NameNode 了解吗,它的工作机制是怎样的 Secondary NameNode 是合并 NameNode 的 edit logs 到 fsimage 文件中; 它的具体工作机制: (1)Secondary NameNode 询问 NameNode 是否需要 checkpoint。直接带回 NameNode 是否检查结果 (2)Secondary NameNode 请求执行 checkpoint (3)NameNode 滚动正在写的 edits 日志 (4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode (5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并 (6)生成新的镜像文件 fsimage.chkpoint 7
本文档来自公众号:五分钟学大数据 (7)拷贝 fsimage.chkpoint 到 NameNode (8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage 所以如果 NameNode 中的元数据丢失,是可以从 Secondary NameNode 恢复一部 分元数据信息的,但不是全部,因为 NameNode 正在写的 edits 日志还没有拷贝 到 Secondary NameNode,这部分恢复不了 6. Secondary NameNode 不能恢复 NameNode 的全部数据,那如何 保证 NameNode 数据存储安全 这个问题就要说 NameNode 的高可用了,即 NameNode HA 一个 NameNode 有单点故障的问题,那就配置双 NameNode,配置有两个关键点, 一是必须要保证这两个 NN 的元数据信息必须要同步的,二是一个 NN 挂掉之后 另一个要立马补上。 1. 2. 元数据信息同步在 HA 方案中采用的是“共享存储”。每次写文件时,需要将日志同 步写入共享存储,这个步骤成功才能认定写文件成功。然后备份节点定期从共享存储同 步日志,以便进行主备切换。 监控 NN 状态采用 zookeeper,两个 NN 节点的状态存放在 ZK 中,另外两个 NN 节点 分别有一个进程监控程序,实施读取 ZK 中有 NN 的状态,来判断当前的 NN 是不是已 经 down 机。如果 standby 的 NN 节点的 ZKFC 发现主节点已经挂掉,那么就会强制给原 本的 active NN 节点发送强制关闭请求,之后将备用的 NN 设置为 active。 3. 如果面试官再问 HA 中的 共享存储 是怎么实现的知道吗? 可以进行解释下:NameNode 共享存储方案有很多,比如 Linux HA, VMware FT, QJM 等,目 前社区已经把由 Clouderea 公司实现的基于 QJM(Quorum Journal Manager)的方案合并 到 HDFS 的 trunk 之中并且作为默认的共享存储实现 基于 QJM 的共享存储系统主要用于保存 EditLog,并不保存 FSImage 文件。FSImage 文件 还是在 NameNode 的本地磁盘上。QJM 共享存储的基本思想来自于 Paxos 算法,采用多个 称为 JournalNode 的节点组成的 JournalNode 集群来存储 EditLog。每个 JournalNode 保存同样的 EditLog 副本。每次 NameNode 写 EditLog 的时候,除了向本地磁盘写入 EditLog 之外,也会并行地向 JournalNode 集群之中的每一个 JournalNode 发送写请求, 只要大多数 (majority) 的 JournalNode 节点返回成功就认为向 JournalNode 集群写入 EditLog 成功。如果有 2N+1 台 JournalNode,那么根据大多数的原则,最多可以容忍有 N 台 JournalNode 节点挂掉 7. 在 NameNode HA 中,会出现脑裂问题吗?怎么解决脑裂 假设 NameNode1 当前为 Active 状态,NameNode2 当前为 Standby 状态。如果某一时 刻 NameNode1 对应的 ZKFailoverController 进程发生了“假死”现象,那么 Zookeeper 服务端会认为 NameNode1 挂掉了,根据前面的主备切换逻辑,NameNode2 会替代 NameNode1 进入 Active 状态。但是此时 NameNode1 可能仍然处于 Active 状态正常运 8
分享到:
收藏