Hadoop常见面试题

题目摘录于博客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.mzph.cn/bicheng/67720.shtml

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

相关文章

Sql 创建用户

Sql server 创建用户 Sql server 创建用户SQL MI 创建用户修改其他用户密码 Sql server 创建用户 在对应的数据库执行,该用户得到该库的所有权限 test.database.chinacloudapi.cn DB–01 DB–02 创建服务器登录用户 CREATE LOGIN test WITH PASSWORD zDgXI7rsafkak…

腾讯云AI代码助手编程挑战赛-武器大师

作品简介 对话过程能够介绍二战 各种武器 冷战 武器 现代的 各种武器装备,陆海空三军都知道。 技术架构 使用全后端分离的架构,前端使用Vue脚手架,腾讯云修改样式css 开发环境、开发流程 系统:win11 开发工具:VS…

Maven核心插件之maven-resources-plugin

前言 Maven 插件是 Maven 构建系统的重要组成部分,它们为 Maven 提供了丰富的功能和扩展能力,使得 Maven 不仅是一个构建工具,更是一个强大的项目管理平台。在 Maven 项目中,插件的使用通常通过配置 pom.xml 文件来完成。每个插件…

Golang的文件加密技术研究与应用

Golang的文件加密技术研究与应用 一、加密技术概述 文件加密的重要性 文件加密是指通过对文件进行加密操作,将文件内容转化为一段难以理解的数据。这样可以保护文件的隐私和安全,防止文件被未授权的用户访问和窃取。在日常工作和生活中,我们经…

Redis之秒杀活动

目录 全局唯一ID&#xff1a; 为什么 count 不可能为 null&#xff1f; 为什么返回值是 timestamp << COUNT_BITS | count&#xff1f; 整体的逻辑 (1) 生成时间戳 (2) 生成序列号 (3) 拼接时间戳和序列号 超卖问题&#xff1a; 基于版本号的乐观锁 CAS思想 …

VSCode 在Windows下开发时使用Cmake Tools时输出Log乱码以及CPP文件乱码的终极解决方案

在Windows11上使用VSCode开发C程序的时候&#xff0c;由于使用到了Cmake Tools插件&#xff0c;在编译运行的时候&#xff0c;会出现输出日志乱码的情况&#xff0c;那么如何解决呢&#xff1f; 这里提供了解决方案&#xff1a; 当Settings里的Cmake: Output Log Encoding里设…

【C++经典例题】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a; 期待您的关注 题目描述&#xff1a; 原题链接&#xff1a; 求123...n_牛客题霸_牛客网 (nowcoder.com) 解题思路&#xff1a; …

STM32 单片机 练习项目 LED灯闪烁LED流水灯蜂鸣器 未完待续

个人学习笔记 文件路径&#xff1a;程序源码\STM32Project-DAP&DAPmini\1-1 接线图 3-1LED闪烁图片 新建项目 新建项目文件 选择F103C8芯片 关闭弹出窗口 拷贝资料 在项目内新建3个文件夹 Start、Library、User Start文件拷贝 从资料中拷贝文件 文件路径&#xff1a;固…

DAY15 神经网络的参数和变量

DAY15 神经网络的参数和变量 一、参数和变量 在神经网络中&#xff0c;参数和变量是两个关键概念&#xff0c;它们分别指代不同类型的数据和设置。 参数&#xff08;Parameters&#xff09; 定义&#xff1a;参数是指在训练过程中学习到的模型内部变量&#xff0c;这些变量…

VS Code 可视化查看 C 调用链插件 C Relation

简介 一直想用 SourceInsight 一样的可以查看函数调用链一样的功能&#xff0c;但是又不想用 SourceInsight&#xff0c;找了一圈没有找到 VS Code 有类似功能的插件&#xff0c;索性自己开发了一个。 这是一个可以可视化显示 C 函数调用关系的 VS Code 插件&#xff0c;功能纯…

(k8s)kubectl不断重启问题解决!

1.问题描述&#xff1a; 在服务器上安装完k8s之后&#xff0c;会出现kubectl有时候连得上&#xff0c;等之后再去连接的时候又断开&#xff0c;同时节点出现了NotReady的情况&#xff0c; 出现了这两种双重症状 2.解决问题 自己的思路&#xff1a;查看日志&#xff0c;检查报…

什么是数据湖?大数据架构的未来趋势

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

【Leetcode·中等·数组】59. 螺旋矩阵 II(spiral matrix ii)

题目描述 英文版描述 Given a positive integer n, generate an n x n matrix filled with elements from 1 to n(2) in spiral order. Example 1: Input: n 3 Output: [[1,2,3],[8,9,4],[7,6,5]] 提示&#xff1a; 1 < n < 20 英文版地址 https://leetcode.com…

Open WebUI 与 AnythingLLM 安装部署

在前文 Ollama私有化部署大语言模型LLM&#xff08;上&#xff09;-CSDN博客 中通过Ollama来搭建运行私有化大语言模型&#xff0c;但缺少用户交互的界面&#xff0c;特别是Web可视化界面。 对此&#xff0c;本文以Open WebUI和AnythingLLM为例分别作为Ollama的前端Web可视化界…

论文导读 | 数据库系统中基于机器学习的基数估计方法

背景 基数估计任务是在一个查询执行之前预测其基数&#xff0c;基于代价的查询优化器&#xff08;Cost Based Optimizer&#xff09;将枚举所有可能的执行计划&#xff0c;并利用估计的基数选出期望执行代价最小的计划&#xff0c;从而完成查询优化的任务。 然而&#xff0c;…

3D扫描建模有哪些优势和劣势?

3D扫描建模作为一种先进的数字化手段&#xff0c;在多个领域展现出了巨大的潜力和价值&#xff0c;但同时也存在一些劣势。以下是对3D扫描建模优势和劣势的详细分析&#xff1a; 3D扫描建模的优势 高精度数据采集&#xff1a; 三维扫描技术能够以极高的精度获取物体的三维数…

网络安全 信息收集入门

1.信息收集定义 信息收集是指收集有关目标应用程序和系统的相关信息。这些信息可以帮助攻击者了解目标系统的架构、技术实现细节、运行环境、网络拓扑结构、安全措施等方面的信息&#xff0c;以便我们在后续的渗透过程更好的进行。 2.收集方式-主动和被动收集 ①收集方式不同…

MBM指尖六维力触觉传感器:高灵敏度、低漂移,精准掌控力学世界

MBM指尖六维力触觉传感器是一种专为机器人设计的高性能传感器。它通过集成三轴力和三轴力矩的感知能力&#xff0c;能够精准捕捉复杂的力学信息。传感器采用MEMS与应变体复合测量技术&#xff0c;具备数字输出功能&#xff0c;显著降低漂移并减少安装偏移的影响。其紧凑轻便的设…

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫&#xff0c;也被称为“幸运猫”&#xff0c;是一种象征财富和好运的吉祥物&#xff0c;经常…

docker常用命令及dockerfile编写

docker常用命令及dockerfile编写 1.docker常用命令1.1镜像相关1.2容器相关1.3数据卷1.4网络模式 2.Dockerfile3.Dockerfile示例 1.docker常用命令 1.1镜像相关 镜像相当于是一个模板&#xff0c;可以实例化出很多个容器&#xff1b; #查看docker版本 docker -v#查看docker默…