版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Yarn高频面试题及详细真实答案(实战向)一、基础认知类(入门必问)1、简单说下什么是Yarn?它的核心作用是什么?Yarn是Hadoop生态圈的资源调度框架,是Hadoop2.x及以上版本的核心组件。最开始Hadoop1.x使用MapReduce自带的调度机制,存在单点故障、资源利用率低、不支持多计算框架的问题,Yarn就是为了解决这些问题诞生的。它的核心作用只有两点:统一管理集群资源、统一调度任务运行。简单来说,整个大数据集群的CPU、内存资源全部交给Yarn管控,Spark、Flink、MapReduce等所有计算任务,都统一提交给Yarn分配资源、调度运行,实现集群资源共享和精细化管控。2、Yarn相比Hadoop1.x的JobTracker优势有哪些?1.x的JobTracker是大包大揽的角色,既管资源调度,又管任务监控、运行管理,问题非常多:第一,单点故障严重,JobTracker挂掉整个集群任务全部瘫痪;第二,资源利用率极低,调度策略粗糙,容易出现节点资源闲置、任务资源抢占的情况;第三,不支持多框架,只能跑MapReduce任务,无法兼容Spark、Flink等主流计算引擎;第四,集群扩展性差,节点数量多了之后,JobTracker压力过大,极易卡顿宕机。而Yarn做了职责拆分,把资源调度和任务管理解耦,完美解决以上问题,支持集群横向扩容、多任务框架混跑、资源高效利用,同时支持高可用。3、Yarn支持哪些计算框架?日常工作中常用的有哪些?Yarn是通用资源调度平台,不绑定特定计算引擎,主流大数据框架都可以基于Yarn运行。日常工作最常用的:MapReduce、Spark、Flink、Hive(底层跑MR/Spark)、Presto部分集群部署模式。其他支持的还有Storm、Tez等流式、交互式计算框架。二、架构原理类(面试核心重点)4、详细说下Yarn的核心组件及各自职责Yarn整体采用主从架构,核心四大组件:ResourceManager、NodeManager、ApplicationMaster、Container。1、ResourceManager(RM,全局资源管理器,主节点)整个集群的老大,全局唯一(HA模式下有主备)。主要负责接收客户端任务提交请求、管理所有NodeManager、统一调度集群资源、分配资源队列,不参与具体任务运行监控,只做资源统筹。2、NodeManager(NM,节点资源管理器,从节点)集群每一台机器都会部署一个NM。负责管理当前节点的所有资源(CPU、内存、磁盘),定时向RM汇报节点资源使用情况、健康状态,同时负责启动、监控、销毁本地的Container,管控本机所有任务进程。3、ApplicationMaster(AM,应用程序管理器)每提交一个任务(一个Application),就会单独启动一个AM。AM是任务的专属管理者,负责向RM申请运行所需资源、和NM通信启动任务容器、监控任务运行状态、处理任务失败重试、任务结束后释放资源。4、Container(资源容器)Yarn资源分配的最小单位,相当于一个资源隔离的运行环境。所有任务的Task都必须运行在Container中,每个Container会被分配固定的内存、CPU资源,不同任务的容器相互隔离,不会互相抢占资源。5、ResourceManager的HA机制是怎样的?如何实现主备切换?生产环境Yarn必须开启RM高可用,避免单点故障。RMHA采用主备切换模式,集群部署两个RM节点,分为Active主节点、Standby备节点。核心机制:1、主节点ActiveRM正常工作,处理所有任务请求、资源调度;备节点StandbyRM处于待命状态,不处理业务;2、通过Zookeeper实现故障检测和主备抢占,两个RM会持续向ZK注册心跳,抢占临时节点;3、Active节点宕机、心跳中断后,ZK感知节点失效,释放锁资源,Standby节点立刻抢占锁,切换为Active状态,接管整个集群的资源调度工作;4、同时通过ZK存储集群运行状态、任务信息,保证切换过程中任务不丢失、集群不中断。6、AM(ApplicationMaster)失败了会怎么样?会不会导致整个任务失败?不会直接导致任务彻底失败,Yarn自带AM重试机制。1、如果AM运行过程中宕机、异常退出,对应的NM会检测到进程消失,立刻上报给RM;2、RM收到异常信息后,会重新分配资源,在集群任意节点重启一个新的AM;3、新的AM启动后,会重新读取任务的运行进度、任务状态,继续接管剩余任务执行;4、Yarn默认AM最大重试次数是2次,超过重试次数才会判定整个任务运行失败。生产中可以根据任务重要性,在配置文件中调整AM重试次数。7、NM(NodeManager)宕机后,正在运行的任务会如何处理?1、NM宕机后,该节点上所有正在运行的Container都会全部失效,对应的Task直接失败;2、RM检测到该节点心跳超时,会将该节点标记为失效节点,暂时不再向该节点分配资源;3、任务的AM感知到节点任务失败后,会自动重新向RM申请资源,在其他正常节点重新运行失败的Task;4、只要不是集群大规模节点故障,单个NM宕机只会导致部分任务重试,不会影响整体任务运行,只有当重试次数超过阈值,任务才会失败。三、任务运行流程类(高频手写/口述题)8、详细描述一次Yarn任务的完整提交运行流程以最常用的Hive/MapReduce任务为例,完整流程分为6步:第一步:客户端提交任务用户通过客户端提交任务,客户端会向ResourceManager发送任务申请,告知任务类型、所需资源大小等信息。第二步:RM分配资源启动AMRM接收请求后,根据集群资源队列情况,筛选一台资源充足的节点,通知对应NM启动一个Container,在容器中启动当前任务的ApplicationMaster。第三步:AM初始化并申请资源AM启动成功后,会主动向RM注册当前任务,同时根据任务逻辑,计算需要多少CPU、内存、Container资源,向RM批量申请资源。第四步:RM调度分配资源RM的调度器根据队列策略、资源情况,为AM分配对应资源,返回可用的节点和资源配额。第五步:启动任务TaskAM拿到资源后,和对应节点的NM通信,请求启动Container,在容器中运行Map、Reduce或者SparkTask等具体任务逻辑。第六步:任务运行完成,释放资源所有Task运行结束后,AM向RM注销任务,RM回收所有Container资源,节点资源释放,等待下一次任务调度,任务正式结束。四、调度器核心考点(面试重中之重)9、Yarn有哪三种调度器?各自特点和使用场景是什么?Yarn内置三种核心调度器:FIFO调度器、容量调度器(CapacityScheduler)、公平调度器(FairScheduler)。生产环境基本只用后两种。1、FIFO先进先出调度器最简单的调度策略,任务按照提交顺序排队执行,先提交先运行,后提交的任务必须等前面任务全部结束才能执行。缺点非常明显,大任务长时间占用集群资源,阻塞后续所有小任务,集群资源利用率极低,仅用于测试环境,生产完全不用。2、Capacity容量调度器(默认调度器)核心思想是队列资源配额分配。可以把集群资源划分成多个队列,每个队列分配固定比例的资源,不同业务、不同团队使用独立队列,互不干扰。特点:支持资源抢占、队列资源复用,空闲队列的资源可以临时借给繁忙队列使用,保证资源不浪费;优先级偏向保证核心业务资源稳定。适用场景:企业生产主环境,多业务、多团队共用集群,需要严格隔离业务资源,保障核心任务优先运行。3、Fair公平调度器核心思想是资源公平共享,不设置固定配额,所有运行中的任务平均分配集群资源。当集群只有一个任务时,它可以占用全部资源;多个任务同时运行时,自动均分资源,保证每个任务都能拿到资源持续运行,不会出现任务长时间等待。适用场景:测试集群、数据分析集群,任务随机性强、无严格业务优先级,追求资源公平使用的场景。10、容量调度器的队列机制是怎样的?支持队列嵌套吗?容量调度器支持多级嵌套队列,这也是生产隔离业务的核心手段。最顶层是根队列,根队列下可以创建多个一级业务队列,比如数仓队列、实时队列、数据分析队列;每个一级队列下还可以创建二级子队列,比如数仓队列下拆分ods、dwd、dws子队列。每个队列会配置最大资源、最小保障资源、最大运行任务数、用户资源限制等参数。空闲队列的资源可以弹性共享,一旦自身有任务提交,会立刻收回借出资源,保障自身业务优先。11、公平调度器和容量调度器的核心区别是什么?工作中如何选择?核心区别:容量调度器侧重资源保底、业务隔离,每个队列有固定资源配额,优先保障核心业务的资源稳定性;公平调度器侧重资源均分、公平使用,无固定配额,动态均衡所有任务的资源占用。选型原则:生产正式集群、有核心定时任务、多业务隔离需求,必用容量调度器;测试集群、临时分析任务、无严格业务优先级,用公平调度器。五、资源配置与调优类(实战面试题)12、Yarn中Container内存、CPU资源如何配置?核心参数有哪些?所有资源配置都在yarn-site.xml文件中,核心常用参数:1、yarn.nodemanager.resource.memory-mb:单节点可分配的最大内存资源,根据机器实际内存配置,一般预留系统内存,剩余全部给到Yarn;2、yarn.nodemanager.resource.cpu-vcores:单节点可分配的最大CPU核心数;3、yarn.scheduler.minimum-allocation-mb:单个Container最小分配内存;4、yarn.scheduler.maximum-allocation-mb:单个Container最大分配内存;5、yarn.scheduler.minimum-allocation-vcores:单个Container最小CPU核心;6、yarn.scheduler.maximum-allocation-vcores:单个Container最大CPU核心。配置原则:根据机器硬件规格设置,避免单个容器占用过多资源,同时防止小任务资源浪费。13、工作中遇到过Yarn资源溢出、任务被kill的问题吗?是什么原因?怎么解决?这个是生产最常见的问题,核心原因分两种:物理内存溢出、虚拟内存溢出。问题原因:1、任务实际运行需要的内存,超过了Container分配的物理内存,NM检测到资源超标,直接强制杀死容器,任务报错;2、任务进程虚拟内存占用过高,超出yarn虚拟内存倍率限制,同样会被系统kill掉。解决方案:1、临时解决:调大任务提交时的Container内存参数,直接增加资源配额;2、根本优化:优化任务SQL/代码,减少数据倾斜、减少大表全量扫描、优化shuffle过程,降低内存占用;3、集群调优:适当调整虚拟内存倍率参数,避免正常任务被误杀;4、拆分大任务:将超大任务拆分为多个小任务,分散内存压力。14、如何提升Yarn集群资源利用率?日常调优手段有哪些?1、合理划分队列,配置队列弹性资源,空闲资源自动共享,避免资源长期闲置;2、精细化配置Container最大、最小资源,避免小任务占用大容器,造成资源浪费;3、优化任务逻辑,解决数据倾斜、数据冗余问题,减少无效资源占用;4、设置任务优先级,核心任务优先调度,非核心任务错峰运行,避免资源抢占;5、开启资源抢占机制,空闲资源快速回收、复用;6、定期清理僵尸任务、残留Container,释放无效占用的集群资源。六、故障排查与实战问题(高阶面试题)15、任务提交后一直处于Accepted状态,不运行是什么原因?如何排查?Accepted代表任务已经被RM接收,但是没有拿到可用资源,无法启动,核心原因都是资源不足或队列限制。常见原因:1、集群整体资源爆满,CPU、内存全部被占用,无空闲资源分配;2、当前任务所在队列资源已满,达到最大运行任务数、最大资源上限;3、队列设置了用户资源限制,当前用户提交任务过多,被限制调度;4、集群部分节点宕机,可用资源大幅减少。排查步骤:1、打开Yarn8088监控页面,查看集群整体资源使用情况、节点状态;2、查看对应队列的资源占用、运行任务数,确认队列是否打满;3、查看是否有大量僵尸任务、残留进程占用资源;4、杀掉无效任务释放资源,或将任务切换到空闲队列。16、Yarn任务运行失败,如何快速定位问题根源?日常排查遵循固定流程,高效定位问题:1、先看Yarn8088页面,查看任务最终失败原因、失败节点、重试次数;2、查看任务日志,优先看Container运行日志,排查是否是内存溢出、代码报错、数据异常;3、查看NM日志,排查节点是否宕机、资源不足、节点异常;4、查看RM日志,排查是否是调度异常、队列权限、资源分配失败;5、结合业务,判断是代码问题、数据问题,还是集群资源、配置问题。17、什么是Yarn僵尸任务?如何产生?怎么清理?僵尸任务就是任务已经结束、报错、终止,但是资源没有正常释放,进程和容器依然占用集群资源的无效任务。产生原因:任务异常崩溃、节点网络波动、NM进程异常、任务退出逻辑异常,导致AM没有正常向RM注销任务。危害:长期占用集群内存、CPU,导致集群资源利用率虚高,正常任务无资源可用。清理方式:1、临时手动清理:通过yarnkill命令强制终止僵尸任务;2、集群自动清理:配置Yarn超时回收参数,自动清理长期闲置、异常的容器和任
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人教版小学五年级英语下册第8单元听力练习题及答案
- 人教版高中物理必修第二册第5章电学基础测试卷及答案
- 2026年造价工程师考试模拟试卷工程造价咨询项目管理及答案
- 北师大版初中历史下册第6章单元测试卷及答案
- 2026年鲁菜的经典炖菜菜谱
- 监控网络请求测试试题及答案
- 小学六年级科学下册《保护生物与环境》教学设计:基于核心素养的行动导向式单元整合教学
- 小学三年级英语《Unit 8 Colours 第2课时 Cartoon time》教学设计
- 高中数学选择性必修第二册条件概率教学设计
- 初中数学七年级下册“余角、补角”概念建构与思维进阶教学设计
- 注册证延续有效期内产品分析报告
- 足球运动 主题班会 课件
- 悬挑式操作平台专项施工方案
- 2026年宁波市天文竞赛试题
- 南京教师编制考试结构化面试综合素质面试题库及答案
- 排土场安全培训课件
- 焊工复审课件
- 班风学风建设课件
- 内镜中心职业防护管理
- 2025春季江苏省粮食集团有限责任公司招聘2人(第二批)笔试历年备考题库附带答案详解试卷2套
- DB15-T 4026-2025 水利工程格宾应用技术规范
评论
0/150
提交评论