首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客942826567号
闽南师范大学 大数据开发工程师
发布于福建
关注
已关注
取消关注
@酸辣鱼籽酱:
大数据(Hadoop)面试题及答案
声明:此文档由本人学习整理所做,答案由个人整理,所引部分已经标出出处,牛友们按需查看,文章难免有纰漏错误之处,望交流指正。题目摘自牛客网:大数据面试题V3.0,约870篇牛客大数据面经480道面试题 发布者:蓦_然 ,在此表达感谢。 Hadoop基础 介绍下Hadoop ● Hadoop是什么 ○ 1.Hadoop是一个由Apache基金会开发的分布式系统基础架构 ○ 2.主要解决海量数据的存储和分析计算问题 ○ 3.广义上来说,Hadoop通常指的是广泛的概念--Hadoop生态圈 Hadoop的特点 ● Hadoop的优势(4高) ○ 1.高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算或者存储节点出现故障,也不会导致数据的丢失。 ○ 2.高拓展性:在集群之间分配任务数据,可以方便拓展数以千计的节点 ○ 3.高效性:在MapReduce的思想下,Hadoop是并行工作的,加快了任务处理的速度。 ○ 4.高容错性:能够自动将失败的任务重新分配。 说下Hadoop生态圈组件及其作用 ● 大数据技术生态体系 ○ 1)Sqoop:Sqoop 是一款开源的工具,主要用于在大数据框架(Hadoop、Hive 等)与传统的数据库(MySql) 间进行数据的传递,可以将一个关系型数据库中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。 ○ 2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。 ○ 3)Kafka:Kafka 是一种高吞吐量的分布式 发布/订阅消息系统; ○ 4)Spark:Spark 是当前非常流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。 ○ 5)Flink:Flink 是当前非常流行的开源大数据内存计算框架。用于实时计算的场景较多。 ○ 6)Oozie:Oozie 是一个管理 Hdoop 作业(job)的工作流程调度管理系统。 ○ 7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。 ○ 8)Hive:Hive 是基于 Hadoop 的一个 数据仓库工具,可以将结构化的数据文件映射为一张 数据库表,并提供简单的 SQL 查询功能。可以将 SQL 语句转换为 MapReduce 任务进行运行。 ■ 其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。 ○ 9)ZooKeeper:它是一个针对大型分布式系统的 可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。 Hadoop主要分哪几个部分? 他们有什么作用?● Hadoop1.x ○ MapReduce(计算+资源调度) ○ HDFS(数据存储) ○ Common(辅助工具) ● Hadoop2.x ○ MapReduce(计算) ○ HDFS(数据存储) ○ Yarn(资源调度)5. Hadoop 1.x,2x,3.x 的区别Hadoop1.x 的组成为:Common(辅助工具)、HDFS(数据存储)、MapReduce (计算+资源调度); Hadoop2.x 的组成为:Common(辅助工具)、HDFS(数据存储)、MapReduce (计算)、Yarn (资源调度) Hadoop3.x在组成上和Hadoop2.x没有任何区别 Hadoop集群工作时启动哪些进程? 它们有什么作用? ● 一、HDFS 架构概述 ○ 1、NameNode(NN):存储文件的元数据,如:文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DataNode等 ○ 2、DataNode(DN):在本地文件系统存储文件的块数据,以及块数据的校验和。 ○ 3、Secondary NameNode(2NN):每隔一段时间对NameNode进行元数据的备份。 ○ ● 二、YARN 架构概述 ○ 1、ResourceManager(RM): ■ 1.处理客户端的请求■ 2.监控NodeManager■ 3.启动或者监控ApplicationMaster■ 4.资源分配和调度 ○ 2、NodeManager(NM): ■ 1.管理单个节点上的资源■ 2.处理来自ResourceManager的命令■ 3.处理来自ApplicationManager的命令 ○ 3、ApplicationMaster(AM): ■ 1.负责数据的切分■ 2.为应用程序申请资源并分配内部的任务。■ 3.任务的监控和容错 ○ 4、Container: ■ YARN中资源的抽象,封装了本地节点的多维度资源。如:内存、CPU、磁盘、网络等 ○ ● 三、MapReduce 架构概述 ○ MapReduce 将计算过程分为两个阶段:Map 和 Reduce ○ 1)Map 阶段并行处理输入数据 ○ 2)Reduce 阶段对 Map 结果进行汇总 ○ 在集群计算的时候,什么是集群的主要瓶颈 ● MapReduce的执行效率的瓶颈在于两点: ○ 1、计算机的性能 ■ CPU、内存、磁盘健康、网络带宽 ○ 2、I/O操作优化 ■ 1、数据倾斜■ 2、Map和Reduce数量设计的不合理■ 3、Map运行的时间过长、导致Reduce等待时间过久■ 4、小文件过多■ 5、大量的不可切分的超大的压缩文件■ 6、Spill次数过多(导致大量落盘操作)■ 7、Merge次数过多 搭建Hadoop集群的xml文件有哪些?● 2)配置文件说明 ○ core-default.xml ○ hdfs-default.xml ○ yarn-default.xml ○ mapred-default.xml Hadoop的checkpoint流程 ● 5.1 NN和2NN工作机制 ○ 1、NameNode的元数据信息是通过Fsimage文件 + Edits编辑日志来维护的,当NameNode启动的时候Fsimage文件和Edits编辑日志的内容会被加载到内存中进行合并形成最新的元数据信息,当我们对元数据进行操作的时候,考虑到直接修改文件的低效性,从而不会直接修改Fsimage文件,而是会往Edits编辑日志文件中追加操作记录。 ○ 2、当满足一定条件的时候 SecondaryNameNode会将Fsimage文件和 Edits 编辑日志文件的合并:SecondaryNameNode首先会让NameNode停止对正在使用的Edits编辑日志文件的使用,并重新生成一个新的Edits编辑日志文件。 ○ 3、接着把NameNode 的 Fsimage文件和已停止的Edits文件拷贝到本地在内存中。将Edits编辑日志文件的操作记录合并到Fsimage 文件中形成一个最新的Fsimage文件,最后会将这个最新的Fsimage文件推送给NameNode并自己也备份一份。 ○ Hadoop的默认块大小是多少? 为什么要设置这么大? ● HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认的大小是128M。 ● HDFS块大小设置与磁盘的传输速度紧密相关。寻址时间为传输时间的百分之一时,为最佳的状态。一般的寻址时间约为10ms,则传输时间约为1s,而目前磁盘的传输速度普遍为100MB/s,所以将Block的大小设置为128M最为合理,当然,随着磁盘的传输速度的提升,可以适当调整Block的大小。 Block划分的原因 ● Block划分的原因 ○ (1)分布式存储大文件,可以动态调整集群的规模。 ○ (2)容易对数据进行备份,提高容错能力 ○ (3)使用抽象块概念而非整个文件作为存储单元,大大简化存储子系统的设计 Hadoop常见的压缩算法? ● 1.3 压缩方式选择 ○ 1.3.1 Gzip压缩 ■ 优点:压缩率比较高,并且压缩/解压的速度比较快,(压缩率第二,解压缩速率倒数第二)■ 缺点:不支持对文件Split(切分) ○ 1.3.2 Bzip2压缩 ■ 优点:支持对文件进行Split;具有很高的压缩率,比Gzip压缩率都高(压缩率第一,解压缩速率倒数第一)■ 缺点:压缩/解压速度慢 ○ 1.3.3 Lzo压缩 ■ 优点:合理的压缩率,压缩/解压速度比较快,支持Split,是Hadoop中最流行的压缩格式。■ 缺点:压缩率比Gzip要低一些,Hadoop本身不支持,需要单独安装 ○ 1.3.4 Snappy压缩 ■ 优点:高速的压缩速度和合理的压缩率■ 缺点:不支持Split,压缩率比Gzip要低,Hadoop本省也不支持,需要单独安装。 Hadoop作业提交到YARN的流程? ● 1)作业提交 ○ 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 ○ 第2步:Client向RM申请一个作业id。 ○ 第3步:RM给Client返回该job资源的提交路径和作业id。 ○ 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 ○ 第5步:Client提交完资源后,向RM申请运行ApplicationMaster。 Hadoop的Combiner的作用 ● 3.3.7 Combiner合并 ○ 1)Combiner是MR程序汇总Mapper和Reducer之外的一种组件 ○ 2)Combiner组件的父类就是Reducer ○ 3) Combiner和Reducer组件的区别局在于运行的位置 ■ Combiner是在每一个MapTask所在的节点运行■ Reducer是接受全局的所有Mapper的输出结果,然后进行运算。 ○ 4)Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减少网络传输量。 ○ 5)Combiner能够应用的前提是不能影响最终的业务逻辑。 ○ 自定义Combiner实现步骤: ■ 1.自定义一个Combiner并继承Reducer,重写Reduce方法■ 2.在Job驱动中配置使用。 Hadoop序列化和反序列化 ● 什么是序列化? ○ 序列化就是把内存中的对象,转换成字节序列(或者其他的数据传输协议)以便于存储大到磁盘(持久化)或者网络传输。 ○ 反序列化就是将收到的字节序列(或者其他的数据传输协议)或者磁盘的持久化数据,转换成内存中的对象。 Hadoop的运行模式本地模式:(hadoop默认安装后启动就是本地模式,就是将来的数据存在Linux本地,并且运行MR程序的时候也是在本地机器上运行) 伪分布式模式:伪分布式其实就只在一台机器上启动HDFS集群,启动YARN集群,并且数据存在HDFS集群上,以及运行MR程序也是在YARN上运行,计算后的结果也是输出到HDFS上。本质上就是利用一台服务器中多个java进程去模拟多个服务 完全分布式:完全分布式其实就是多台机器上分别启动HDFS集群,启动YARN集群,并且数据存在HDFS集群上的以及运行MR程序也是在YARN上运行,计算后的结果也是输出到HDFS上。 Hadoop小文件处理问题 ● 2.4.1 Hadoop小文件弊端 ○ 1、HDFS 上每个文件都要在 NameNode 上创建对应的元数据,这个元数据的大小约为150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用NameNode 的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。 ○ 2、小文件过多,在进行 MR 计算时,会生成过多切片,需要启动过多个 MapTask。每个MapTask 处理的数据量小,导致 MapTask 的处理时间比启动时间还小,白白消耗资源。 Hadoop为什么要从1.x升级到2.x? ● 3.1 Hadoop2.x新特性 ○ 3.1.1 集群间数据拷贝 ■ 1)scp 实现两个远程主机之间的文件复制■ 2)采用 distcp 命令实现两个 Hadoop 集群之间的递归数据复制 ○ 3.1.2 小文件存档 ■ HDFS存档文件或HAR文件是一个更高效的文件存档工具,能够将多个小文件打包成一个 HAR 文件,从而达到减少 NameNode 的内存使用。具体来说,HDFS存档文件对内还是多个独立文件 ,对NameNode而言却是一个整体,从而减少了NameNode的内存使用。 ○ 3.1.3 回收站 ■ 开启回收站的功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 ● 1、默认值fs.trash.interval = 0,0表示禁用回收站,其他值表示设置的存活时间。 ● 2、默认值fs.trash.checkpoint.interval = 0 ,检查回收站的间隔时间,如果该值为0,则该值设置和fs.trash.interval的参数值相等 ● 3、要求fs.trash.checkpoint.interval <= fs.trash.interval ○ 检查时间fs.trash.checkpoint.interval时间到,会检查回收站中的文件,删除达到存活时间的文件。 Hadoop为什么要从2.x升级到3.x? ● 3.2 Hadoop3.x新特性 ○ 3.2.1 多NN的HA架构 ■ Hadoop3.x 允许用户运行多个备用 NameNode。 ● 例如,通过配置三个 NameNode 和五个 JournalNode,群集能够容忍两个节点而不是一个节点的故障。■ HDFS HA 功能通过配置 多个 Active/Standby 状态的 NameNodes 实现在集群中对 NameNode的热备来解决单点故障问题。 ○ 3.2.2 纠删码 ■ 纠删码(Erasure Coding)能够在不到 50% 的数据冗余情况下提供和 3 副本相同的容错能力,因此,使用纠删码作为副本机制的改进是自然而然的。■ 缺点:副本策略牺牲空间,纠删码策略牺牲时间■ Hadoop的优缺点 ● 2.4 Hadoop的优势(4高) ○ 1.高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算或者存储节点出现故障,也不会导致数据的丢失。 ○ 2.高拓展性:在集群之间分配任务数据,可以方便拓展数以千计的节点 ○ 3.高效性:在MapReduce的思想下,Hadoop是并行工作的,加快了任务处理的速度。 ○ 4.高容错性:能够自动将失败的任务重新分配。 Hadoop的缺点1、Hadoop不适用于低延迟数据访问。2、Hadoop不能高效存储大量小文件。3、Hadoop不支持多用户写入并任意修改文件。
点赞 46
评论 4
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-28 13:09
苏州大学 集成电路IC设计
自认为较难的问题
就是你有什么问题要问我吗?这个我感觉还挺难的,毕竟这个涉及到自身的理解和展望,我感觉还是要表达下自己的态度,无论怎么样都要准备一些问题,不过个人感觉不建议问过于细枝未书和非常深奥的问题,毕竟问出口,后面反而是扣分项。
你遇到最难的面试题目是_
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-29 14:13
快star-x人才计划避雷
两轮技术面都过了但是通知部门没hc了要换岗位重新投递,早干嘛了,我真绷不住了
_var:
早还没确认招谁(
点赞
评论
收藏
分享
07-01 15:32
桂林电子科技大学 Python
找不到工作,是我展示的的项目太水了么
求指点😥
Steven267:
桂林去掉,本科改硕士
点赞
评论
收藏
分享
07-28 08:40
中国人民大学 Java
分享B站开发实习生技术面凉经
哔哩哔哩跨平台开发实习生拷打项目:请详细介绍你参与过的与跨平台开发相关的项目,包括项目背景、你的职责以及遇到的挑战和解决方案。数据结构与算法:举例说明你在实际项目中运用过的一种数据结构和算法,并阐述选择它们的原因。现代编程语言:你掌握的 C++、Kotlin、Swift 中,选择一种语言,谈谈它在跨平台开发中的优势和劣势。操作系统原理:简述操作系统的进程和线程的区别,以及在跨平台开发中如何处理多线程问题。计算机网络:解释 HTTP 协议在跨平台移动 App 开发中的应用,以及如何优化网络请求。数据库:在跨平台开发中,如何选择合适的数据库,以及如何处理不同平台数据库的兼容性问题。基础组件研发:如...
查看12道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
1.1W
2
...
虾皮秋招一面
3573
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3467
4
...
觉得研发高人一等的这辈子有了
2768
5
...
百度提前批 三面
2032
6
...
最强本科✌
1759
7
...
也是逆天了
1451
8
...
被猿辅导挂了简历,但我想说...
1405
9
...
虾皮一面凉经
1368
10
...
上班一周,工资还没拿,先欠公司两千
1338
创作者周榜
更多
正在热议
更多
#
工作中哪个瞬间让你想离职
#
66011次浏览
582人参与
#
找工作如何保持松弛感?
#
92288次浏览
1120人参与
#
中兴秋招
#
207401次浏览
2304人参与
#
如何快速融入团队?
#
19036次浏览
220人参与
#
Offer比较,你最看重什么?
#
194318次浏览
1323人参与
#
和同事相处最忌讳的是__
#
27110次浏览
257人参与
#
秋招被确诊为……
#
166709次浏览
795人参与
#
参加过提前批的机械人,你们还参加秋招么
#
86727次浏览
1417人参与
#
投格力的你,拿到offer了吗?
#
87750次浏览
586人参与
#
虾皮求职进展汇总
#
250960次浏览
1886人参与
#
你最希望上岸的公司是?
#
136109次浏览
709人参与
#
计算机专业还有必要去大厂卷吗
#
38773次浏览
183人参与
#
柠檬微趣工作体验
#
6934次浏览
40人参与
#
26届的你,投了哪些公司?
#
51291次浏览
523人参与
#
地平线求职进展汇总
#
52767次浏览
371人参与
#
通信硬件岗投递时间线
#
18977次浏览
69人参与
#
简历上的经历如何包装
#
32540次浏览
869人参与
#
我对___祛魅了
#
53486次浏览
467人参与
#
你跟室友的关系怎么样?
#
8352次浏览
124人参与
#
你遇到最难的面试题目是_
#
17721次浏览
210人参与
#
一人推荐一个值得去的通信/硬件公司
#
191733次浏览
1886人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务