Hadoop常见面试题

news2025/1/11 11:03:53

题目摘录于博客https://blog.csdn.net/qq_42397330/article/details/130218083
1. HDFS的架构
HDFS采用主从架构,其中有两个重要节点Name Node和Data Node,前者负责管理节点以及命名空间和客户端的请求,后者是实际存储数据的节点,HDFS以数据块的形式存储数据。
SecondaryNameNode负责备份
2. HDFS的读写流程
客户端向Name Node发送文件读取请求,Name Node寻找文件位置,查询文件块列表,将查询到的列表返回给客户端,构建文件到Data Node的映射,客户端根据返回的列表向Data Node请求读取数据,Data Node收到读取请求后,从本地磁盘读取数据并将数据块返回给客户端
客户端向Name Node请求写入文件,Name Node相应请求检查全县,客户端请求数据块上传的Data Node位置,Name Node返回几个节点,客户端向Data Node请求上传数据,建立数据通道,直至数据传输完毕
3.HDFS中,文件为什么以block块的方式存储
可以提高数据的可靠性和容错性,优化大文件处理,将大文件切分成若干数据块,可以提高网络传输料理吃,方便数据管理和维护,使其适用于大数据据分析任务
4. 小文件过多有什么危害,你知道的解决办法有哪些
小文件过多会导致产生过多的Name Node索引,一个是占用Name Node大量空间,一个是会导致索引查询效率低下
一种是在数据采集阶段尽量将数据合并成大文件
一个是在Map阶段对文件进行合并操作
定期归档,调整小文件存储策略
5.在NameNode HA中,会出现脑裂问题吗?怎么解决脑裂
当多个节点都认为自己是主节点时会出现的问题,可以使用Zookeeper进行管理,监控并协调各个Name Node节点的状态
6. 简述hadoop压缩和解压缩的框架
压缩器(Compressor)和解压缩器(Decompressor)中Hadoop压缩框架中的一对重要概念。Compressor可以插入压缩输出流的实现中,提供具体的压缩功能;相反,Decompressor提供具体的解压缩功能并插入CompressionInputStream中。
7.namenode的安全模式有了解吗
在H DFS启东市,Name Node进入安全模式,主要是为了确保数据一致性,避免数据丢失,在安全模式下,仅支持数据读请求,不支持数据写入复制或者删除等操作
8. Secondary NameNode 了解吗,它的工作机制是怎样的
‌询问NameNode是否需要CheckPoint‌:Secondary NameNode会询问NameNode是否需要进行Checkpoint操作。如果需要,NameNode会确认并开始准备相关数据‌

‌执行CheckPoint操作‌:NameNode会滚动正在写的Edits日志,并将滚动前的编辑日志和镜像文件(FsImage)拷贝到Secondary NameNode‌

‌合并Edits和FsImage‌:Secondary NameNode加载编辑日志和镜像文件到内存,并进行合并操作。合并完成后,生成新的镜像文件fsimage.chkpoint‌

‌拷贝和重命名文件‌:Secondary NameNode将新的镜像文件拷贝回NameNode,NameNode将该文件重命名为fsimage,完成合并过程‌
它的存在是为了优化性能并确保数据的一致性和系统的可靠性
9. 在上传文件的时候,其中一个 DataNode 突然挂掉了怎么办
客户端上传文件时与DataNode建立pipeline管道,管道的正方向是客户端向DataNode发送的数据包,管道反向是DataNode向客户端发送ack确认,也就是正确接收到数据包之后发送一个已确认接收到的应答。

当DataNode突然挂掉了,客户端接收不到这个DataNode发送的ack确认,客户端会通知NameNode,NameNode检查该块的副本与规定的不符,NameNode会通知DataNode去复制副本,并将挂掉的DataNode作下线处理,不再让它参与文件上传与下载。

10. 在读取文件的时候,其中一个块突然损坏了怎么办
客户端读取完DataNode上的块之后会进行checksum验证,也就是把客户端读取到本地的块与HDFS上的原始块进行校验,如果发现校验结果不一致,客户端会通知NameNode,然后再从下一个拥有该block副本的DataNode继续读。

11.介绍namenode宕机的数据恢复过程
备份NameNode的元数据。
在备份的元数据上重建Edits日志。
将SecondaryNameNode提升为新的NameNode。
确保集群中其他DataNode能够与新的NameNode通信。
12. NameNode 在启动的时候会做哪些操作
格式化文件系统,为了生成fsimage镜像文件;
启动NameNode:
读取fsimage文件,将文件内容加载进内存
等待DataNade注册与发送block report
启动DataNode:
向NameNode注册
发送block report
检查fsimage中记录的块的数量和block report中的块的总数是否相同
对文件系统进行操作(创建目录,上传文件,删除文件等):
此时内存中已经有文件系统改变的信息,但是磁盘中没有文件系统改变的信息,此时会将这些改变信息写入edits文件中,edits文件中存储的是文件系统元数据改变的信息。
13.Map Task的工作机制
inputFile通过split被切割为多个split文件,通过Record按行读取内容给map(自己写的处理逻辑的方法) ,数据被map处理完之后交给OutputCollect收集器,对其结果key进行分区(默认使用的hashPartitioner),然后写入buffer,每个map task 都有一个内存缓冲区(环形缓冲区),存放着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一个临时文件的方式溢写到磁盘,当整个map task 结束后再对磁盘中这个maptask产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task的拉取。
14.Reduce Task工作机制
Copy阶段:简单地拉取数据。Reduce进程启动一些数据copy线程(Fetcher),通过HTTP方式请求maptask获取属于自己的文件(map task 的分区会标识每个map task属于哪个reduce task ,默认reduce task的标识从0开始)。
Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。merge有三种形式:内存到内存;内存到磁盘;磁盘到磁盘。默认情况下第一种形式不启用。当内存中的数据量到达一定阈值,就直接启动内存到磁盘的merge。与map端类似,这也是溢写的过程,这个过程中如果你设置有Combiner,也是会启用的,然后在磁盘中生成了众多的溢写文件。内存到磁盘的merge方式一直在运行,直到没有map端的数据时才结束,然后启动第三种磁盘到磁盘的merge方式生成最终的文件。
合并排序:把分散的数据合并成一个大的数据后,还会再对合并后的数据排序。
15.MR中Shuffle阶段
shuffle阶段分为四个步骤:依次为:分区,排序,规约,分组,其中前三个步骤在map阶段完成,最后一个步骤在reduce阶段完成。
16.shuffle压缩机制
在shuffle阶段,可以看到数据通过大量的拷贝,从map阶段输出的数据,都要通过网络拷贝,发送到reduce阶段,这一过程中,涉及到大量的网络IO,如果数据能够进行压缩,那么数据的发送量就会少得多。

hadoop当中支持的压缩算法:
gzip、bzip2、LZO、LZ4、Snappy,这几种压缩算法综合压缩和解压缩的速率,谷歌的Snappy是最优的,一般都选择Snappy压缩。

Yarn三种资源调度模型
先来先服务FIFO,操作简单但是会出现大应用堵塞
CS能力调度器,用一个专门的队列运行小任务
FS公平调度器,为所有job动态调度资源,提高资源利用率的同时保证任务及时完成
yarn基本架构
YARN(Yet Another Resource Negotiator)是Hadoop中的资源管理系统,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和任务调度。
YARN的基础架构主要由以下几个部分组成:
Client:提交作业的用户。
ResourceManager (RM):管理整个集群的资源和作业。它有两个主要组件:调度器(Scheduler)和应用管理器(Applications Manager,ASM)。
调度器:负责分配集群资源给各个正在运行的应用程序。
应用管理器:负责应用程序生命周期管理,包括启动、监控和重启等。
NodeManager (NM):管理单个节点上的资源和任务。
ApplicationMaster (AM):每个应用程序都有一个AM,负责协调来自RM的资源并与NM通信。
Container:Container是YARN中资源的抽象,它封装了特定量的资源(CPU、内存等)。
YARN基础架构的主要作用是:
提供一个统一的资源管理和任务调度。
将资源管理和作业调度的细节与用户提交的作业解耦。
提供了高可用性和负载均衡。
以下是一个简单的YARN作业提交流程的描述:
用户编写MapReduce作业并提交到YARN。
Client向RM申请一个新的应用程序ID。
RM返回应用程序ID。
Client使用获取的应用程序ID向RM的调度器申请资源容器。
调度器返回资源容器给Client。
Client启动应用程序AM。
AM向RM注册自己,并周期性地向RM发送心跳。
AM向NM请求启动任务(Map任务或Reduce任务)。
NM运行相应的任务,并向AM汇报进度。
作业完成后,AM向RM注销自己。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2274868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式 行为型 责任链模式(Chain of Responsibility Pattern)与 常见技术框架应用 解析

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求沿着处理者链进行发送。每个处理者对象都有机会处理该请求,直到某个处理者决定处理该请求为止。这种模式的主要目的是避免请求的发送者和接收者之间…

VS2022如何修改我们新建工程打开新建文件中,默认输入我们的main函数和宏定义

1.右击我们的VS环境,选择【打开文件位置】 2. 进入C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE 目录 进入【VC】文件夹 进入【VCProjectItems】文件夹 3. 修改newcfile.cpp文件 右击选择【打开方式】选择【记事本】 添加如下内容 #defi…

2025-1-10-sklearn学习(36、37) 数据集转换-无监督降维+随机投影 沙上并禽池上暝。云破月来花弄影。

文章目录 sklearn学习(36、37) 数据集转换-无监督降维随机投影sklearn学习(36) 数据集转换-无监督降维36.1 PCA: 主成份分析36.2 随机投影36.3 特征聚集 sklearn学习(37) 数据集转换-随机投影37.1 Johnson-Lindenstrauss 辅助定理37.2 高斯随机投影37.3 稀疏随机矩阵 sklearn学…

openssl编译

关于windows下,openssl编译 环境准备 安装 perl:https://djvniu.jb51.net/200906/tools/ActivePerl5_64.rar安装nasm:https://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win64/nasm-2.13.01-installer-x64.exe下载opensll源码:https://o…

2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉

文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程,但太费劲了,这里有个非常简便的好方法,分享给大家。 1. 导入QXlsx库 转载链接 :https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md…

先辑芯片HPM5300系列之SEI多摩川协议命令表问题研究

多摩川协议有9条命令,但是先辑SEI的命令表只有8张。0-6是可用的,第7张是黑洞表,所以只有7张可用。 命令表的限制颇多,比如命令表只能按顺序使用 :例如0、1、3,那么命令表3是不能用的。 如果想要实现9个命令…

kotlin项目无法访问Java类的问题

使用IntelliJ创建一个Kotlin项目,然后在src/main/kotlin中创建一个java接口:Animal.java,然后在Main.kt中打印这个java接口,如下: fun main() {println(Animal::class.java) }代码在编辑器中并没有报错,但…

全栈面试(一)Basic/微服务

文章目录 项目地址一、Basic InterviewQuestions1. tell me about yourself?2. tell me about a time when you had to solve a complex code problem?3. tell me a situation that you persuade someone at work?4. tell me a about a confict with a teammate and how you…

医疗可视化大屏 UI 设计新风向

智能化交互 借助人工智能与机器学习技术,实现更智能的交互功能。如通过语音指令或手势控制来操作大屏,医护人员无需手动输入,可更便捷地获取和处理信息。同时,系统能根据用户的操作习惯和数据分析,自动推荐相关的医疗…

Angular由一个bug说起之十三:Cross Origin

跨域 想要了解跨域,首要要了解源 什么是源,源等于协议加域名加端口号 只有这三个都相同,才是同源,反之则是非同源。 比如下面这四个里,只有第4个是同源 而浏览器给服务器发送请求时,他们的源一样&#xff0…

【LeetCode Hot100 贪心算法】 买卖股票的最佳时机、跳跃游戏、划分字母区间

贪心算法 买卖股票的最佳时机买卖股票的最佳时机II跳跃游戏跳跃游戏II划分字母区间 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的…

MCANet: 基于多模态字幕感知的大语言模型训练无关视频异常检测

目录 摘要01 引言02 相关工作2.1 视频异常检测2.2 基于视频的大语言模型(VLLMs) 03 方法论3.1 问题定义3.2 MCANet3.3 图像字幕分支3.4 音频字幕分支3.5 基于LLM的异常评分3.6 视频-文本分数优化 04 实验4.1 数据集和评估指标4.2 实现细节4.3 定性结果4.…

为深度学习引入张量

为深度学习引入张量 什么是张量? 神经网络中的输入、输出和转换都是使用张量表示的,因此,神经网络编程大量使用张量。 张量是神经网络使用的主要数据结构。 张量的概念是其他更具体概念的数学概括。让我们看看一些张量的具体实例。 张量…

Taro+Vue实现图片裁剪组件

cropper-image-taro-vue3 组件库 介绍 cropper-image-taro-vue3 是一个基于 Vue 3 和 Taro 开发的裁剪工具组件,支持图片裁剪、裁剪框拖动、缩放和输出裁剪后的图片。该组件适用于 Vue 3 和 Taro 环境,可以在网页、小程序等平台中使用。 源码 https:…

[DO374] Ansible 配置文件

[DO374] Ansible 配置文件 1. 配置文件位置2. 配置文件3. Ansible 配置4. Ansible的Ad-hoc5. Ansible 模块6. playbook段落7. 任务执行后续8. Ansible 变量8.1 ansible 变量的定义8.1.1 主机变量8.1.2 主机组变量 8.2 vars的循环 9. Ansible Collection10. Ansible-galaxy 安装…

[程序设计]—代理模式

[程序设计]—代理模式👳 本文章记录学习于——52.面向切面:AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事,在学习Spring的源码: 后面慢慢更新源码系列blog,希望多多关注🙏🙏 目前已经总结的b…

OSPF - 2、3类LSA(Network-LSA、NetWork-Sunmmary-LSA)

前篇博客有对常用LSA的总结 2类LSA(Network-LSA) DR产生泛洪范围为本区域 作用:  描述MA网络拓扑信息和网络信息,拓扑信息主要描述当前MA网络中伪节点连接着哪几台路由。网络信息描述当前网络的 掩码和DR接口IP地址。 影响邻居建立中说到…

景芯SOC设计实战

终身辅导、一对一辅导,手把手教您完成SoC全流程设计,从入门到进阶,带您掌握SoC芯片架构、算法、设计、验证、DFT、后端及低功耗全流程!直播视频不定期升级!让您快速超越同龄人! 景芯团队主打文档服务器实战…

多云架构,JuiceFS 如何实现一致性与低延迟的数据分发

随着大模型的普及,GPU 算力成为稀缺资源,单一数据中心或云区域的 GPU 资源常常难以满足用户的全面需求。同时,跨地域团队的协作需求也推动了企业在不同云平台之间调度数据和计算任务。多云架构正逐渐成为一种趋势,然而该架构下的数…

如何获取文件的MIME类型

文章目录 1. 概念介绍2. 方法与类型2.1 使用方法2.2 常见类型3. 示例代码4. 内容总结我们在上一章回中介绍了"如何加载本地图片"相关的内容,本章回中将介绍如何获取文件类型.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中提到的文件类型是指MI…