Yarn面试重点

文章目录

  • 1. 简述Yarn集群的架构
  • 2. Yarn 的任务提交流程是怎样的?
  • 3. yarn的资源调度的三种模型

1. 简述Yarn集群的架构

YARN(Yet Another Resource Negotiator)是Hadoop 2.x引入的资源管理器,用于管理Hadoop集群中的资源和作业调度。YARN的架构设计使得Hadoop可以运行更多类型的应用程序,而不仅仅是MapReduce。以下是YARN集群的主要组件和架构:

  1. ResourceManager(资源管理器):

    • ResourceManager是YARN的主要组件之一,负责整个集群的资源管理和作业调度。
    • ResourceManager有两个主要组件:Scheduler(调度器)和 ApplicationsManager(应用程序管理器)。
    • Scheduler负责为提交的作业分配资源,并监控资源的使用情况。
    • ApplicationsManager负责接收来自客户端的作业提交请求,并为每个作业分配一个ApplicationMaster。
  2. NodeManager(节点管理器):

    • NodeManager是运行在集群中每个节点上的代理,负责本地资源的管理和任务的监控。
    • NodeManager负责与ResourceManager通信,报告节点的资源使用情况,并接收来自ResourceManager的任务分配。
  3. ApplicationMaster(应用程序主管):

    • ApplicationMaster是运行在集群中每个作业所分配的节点上的进程,负责管理该作业的执行过程。
    • 每个作业都有一个对应的ApplicationMaster,它负责与ResourceManager交互,请求资源、监控任务的执行进度,并处理任务执行过程中的错误。
  4. Container(容器):

    • Container是YARN中的基本单位,用于表示分配给作业的资源,如CPU、内存等。
    • 每个任务都运行在一个容器中,NodeManager负责启动和监控容器的执行。
  5. ResourceManager和NodeManager通信:

    • ResourceManager和NodeManager之间通过心跳机制保持通信。
    • NodeManager会定期向ResourceManager发送心跳,报告节点的资源使用情况和容器状态。
    • ResourceManager通过心跳机制监控节点的健康状态,并根据需要进行资源重新分配。

总体而言,YARN集群的架构是一个分布式资源管理系统,通过ResourceManager和NodeManager协同工作,实现对集群资源的有效管理和作业调度,支持多种类型的应用程序运行在Hadoop集群中。

2. Yarn 的任务提交流程是怎样的?

YARN的任务提交流程涉及到客户端、ResourceManager、NodeManager和ApplicationMaster之间的协作。以下是一般情况下YARN任务提交的流程:

  1. 客户端提交作业:

    • 用户使用命令行工具(如yarn命令)或编程接口(如YARN API)提交作业到YARN集群。
    • 客户端会向ResourceManager提交作业的描述信息,包括作业的名称、资源需求、运行命令等。
  2. ResourceManager接收作业请求:

    • ResourceManager接收到作业请求后,将请求转发给ApplicationsManager。
  3. ApplicationsManager接收作业请求:

    • ApplicationsManager负责接收来自客户端的作业请求。
    • 它为每个作业分配一个唯一的作业ID,并启动一个新的ApplicationMaster来管理该作业。
  4. 启动ApplicationMaster:

    • ResourceManager将作业的描述信息发送给NodeManager所在的节点,请求启动ApplicationMaster。
    • NodeManager收到请求后,启动一个新的进程,即ApplicationMaster,以便管理该作业的执行过程。
  5. ApplicationMaster向ResourceManager注册:

    • ApplicationMaster启动后,首先会向ResourceManager注册自己。
    • 注册过程中,ApplicationMaster会提供作业的描述信息,包括作业ID、资源需求等。
  6. 资源分配给作业:

    • ResourceManager收到ApplicationMaster的注册请求后,根据作业的资源需求和集群的资源情况,为该作业分配适当的资源(如CPU、内存等)。
  7. 执行作业任务:

    • ApplicationMaster根据ResourceManager分配的资源,向ResourceManager请求运行容器(Container)。
    • ResourceManager根据容器的需求和集群的资源情况,在合适的节点上启动容器,并分配给作业执行。
    • NodeManager接收到容器启动请求后,启动容器并运行作业任务。
  8. 监控作业执行:

    • ApplicationMaster负责监控作业任务的执行进度、容器的状态以及节点的健康状况。
    • 如果有任何错误或容器失败,ApplicationMaster会向ResourceManager报告,并请求重新分配资源。
  9. 作业完成和资源释放:

    • 当作业执行完成时,ApplicationMaster会向ResourceManager发送作业完成的通知。
    • ResourceManager接收到通知后,释放与该作业相关的资源,并清理作业的状态信息。

总体而言,YARN任务提交流程涉及到客户端提交作业、ResourceManager接收作业请求、ApplicationsManager分配ApplicationMaster、启动ApplicationMaster、资源分配和执行作业任务等多个阶段。这些组件之间的协作确保了作业能够在集群中有效地执行。

3. yarn的资源调度的三种模型

YARN(Yet Another Resource Negotiator)的资源调度模型是设计用于管理和分配Hadoop集群中的资源。它支持多种资源调度模型,其中最常见的三种模型包括:FIFO调度器、容量调度器和公平调度器。

  1. FIFO调度器(First-In-First-Out):

    • FIFO调度器是YARN最简单的调度模型,它按照作业提交的顺序依次分配资源。
    • 当作业提交时,FIFO调度器将分配整个集群中的第一个可用资源给该作业,而不考虑其他作业的需求和资源利用率。
    • 这意味着,如果一个大型作业先于多个小型作业提交,则大型作业将占用所有资源,小型作业需要等待大型作业完成才能运行。
  2. 容量调度器(Capacity Scheduler):

    • 容量调度器是YARN的高级调度模型,它允许管理员将集群资源划分为多个独立的队列,并为每个队列分配一定的资源容量。
    • 每个队列可以配置不同的调度策略,如FIFO、公平调度等,以满足不同队列的需求。
    • 容量调度器允许管理员为不同的用户、部门或应用程序分配独立的队列,并确保它们不会相互干扰。
    • 该调度器还支持优先级调度,管理员可以为队列配置不同的优先级,以确保重要作业优先获得资源。
  3. 公平调度器(Fair Scheduler):

    • 公平调度器是另一种高级调度模型,它旨在提供更加公平和灵活的资源分配方式。
    • 公平调度器将集群资源按照作业的需求动态分配,以确保所有作业都能获得相等的资源份额。
    • 该调度器根据作业的需求和优先级动态调整资源分配,以最大程度地提高集群资源的利用率和作业的执行效率。
    • 公平调度器还支持弹性资源池,允许多个队列共享同一池的资源,并根据实际需求动态分配资源。

总的来说,FIFO调度器、容量调度器和公平调度器是YARN中常用的三种资源调度模型,每种模型都有其适用的场景和优缺点。管理员可以根据集群的特点和需求选择合适的调度模型来管理和优化资源分配。

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

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

相关文章

Git Bash命令初始化本地仓库,提交到远程仓库

git init:初始化空仓库 // 初始化一个空仓库或者重新初始化一个存在的仓库 git init git remote // 为当前本地仓库添加一个远程仓库地址 git remote add origin https://gitee.com/xxx/demo.git git pull // 从设置好链接的远程仓库拉去已经存在的数据,…

centos7安装openGauss数据库

官网手册: https://opengauss.org/zh/download/ 操作系统选择centos,软件包类型选择极简版:https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.1/x86/openGauss-5.0.1-CentOS-64bit.tar.bz2 硬件:2c4g 安装手册&#xf…

C++ map字典

C 中,map 是关联容器的一种,关联容器将值与键关联到一起,并使用键来查找值。这与 python 中的字典类型类似,也是用来存储键值对(key-value) 形式的数据,正如vector可以简单对应到列表。键不能有…

NBlog Java定时任务-备份MySQL数据

NBlog部署维护流程记录(持续更新):https://blog.csdn.net/qq_43349112/article/details/136129806 为了避免服务器被攻击,给博客添加了一个MySQL数据备份功能。 此功能是配合博客写的,有些方法直接用的已有的&#xf…

测试开发岗面试总结

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后…

基于springboot的进销存(仓库)管理系统

项目介绍 现如今,许多企业存在的问题:信息化不足,计算机使用率不高,大量的日常工作皆是手工处理,因此工作效率低,企业内部沟通不良等等问题很难克服。要提升企业竞争力,企业内部信息化是不可缺少的一个步骤…

【Linux】文件描述符 - fd

文章目录 1. open 接口介绍1.1 代码演示1.2 open 函数返回值 2. 文件描述符 fd2.1 0 / 1 / 22.2 文件描述符的分配规则 3. 重定向3.1 dup2 系统调用函数 4. FILE 与 缓冲区 1. open 接口介绍 使用 man open 指令查看手册&#xff1a; #include <sys/types.h> #include …

CANoe 与 UDS 进行项目实操

本周末2天的时间&#xff0c;可以线下带大家对车载项目&#xff1a; uds诊断进行实操训练和CANoe工具的灵活使用 本博主从事新能源汽车的研发部&#xff0c;主要是嵌入式方面的&#xff0c;对车载测试的底层逻辑非常熟悉。 需要项目或者CANoe工具实操的可以关注并私信我 ​…

Js.this关键字的用法

面向对象语言中 this 表示当前对象的一个引用。 但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。(与其他语言相比,函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。) 作用: 1.在方法中,t…

目前研一,是选 FPGA 还是 Linux 嵌入式?

目前研一&#xff0c;是选 FPGA 还是 Linux 嵌入式? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux 的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&a…

生成式AI狂飙,大厂百万年薪疯抢超级毕业生

又是一年一度校园春招季。在生成式AI一路狂飙的时代浪潮下&#xff0c;人工智能、计算机领域的顶尖毕业生&#xff0c;成为各大厂热烈竞逐的对象。 华为“天才少年计划”、蚂蚁集团“蚂蚁星”、腾讯“技术大咖”、阿里巴巴“阿里星”、百度“AIDU计划”、美团“北斗计划”&…

政务服务中心怎么用AI交互数字人打造政务服务新名片?

西海岸新区政务服务中心推出AI交互数字人“灵灵”&#xff0c;以一体机终端形式提供便捷、智能的服务体验&#xff0c;并担任政务数字人主播宣传政策信息。 *图片源于网络 并且AI交互数字人灵灵还承担了政务数字人主播的工作&#xff0c;以数字人短视频的形式&#xff0c;向市…

【Gradle】取消使用idea+Gradle创建项目时自动生成.main结尾的子module

显示效果如下图所示&#xff0c;看起来比较不爽&#xff0c;但是不影响使用 解决方案&#xff1a; 一、打开.idea/gradle.xml文件 先在gradle.xml中添加内容 <option name"resolveModulePerSourceSet" value"false" />&#xff0c;然后刷新Gradle工…

Mysql数据库的多实例部署

mysql多实例部署 先进行软件下载 上传二进制格式的mysql软件包 [rootcjy ~]# ls anaconda-ks.cfg mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz配置用户和组并解压二进制程序至/usr/local下 创建用户和组 [rootcjy ~]# useradd -r -s /sbin/nologin -M mysql解压软件至/usr…

腾讯云最新活动及优惠券领取入口整理汇总

腾讯云作为国内领先的云计算服务提供商&#xff0c;一直以来都致力于为用户提供稳定、安全、高效的云服务。为了吸引用户上云&#xff0c;腾讯云经常推出各种优惠活动&#xff0c;并提供了丰富的优惠券领取渠道。本文将对腾讯云最新的活动及优惠券领取入口进行整理汇总&#xf…

找不到msvcp110.dll是什么意思?五个办法快速解决msvcp110.dll丢失!

msvcp110.dll是Windows操作系统中一个重要的动态链接库文件&#xff0c;msvcp110.dll缺失可能导致应用程序无法正常运行。本文将从为何会缺失msvcp110.dll文件、对msvcp110.dll文件的分析、修复msvcp110.dll文件的方法以及修复时需要注意的事项等方面进行详细探讨。 一&#xf…

GB4806.12 竹木材料制品食品级广东检测机构

食品接触材料要求 1. 安全性&#xff1a;食品接触材料必须符合食品卫生安全要求&#xff0c;不能对健康造成危害。 2. 稳定性&#xff1a;在与食品接触过程中&#xff0c;材料不能发生化学反应&#xff0c;不掺杂有害物质&#xff0c;不影响食品的质量和口感。 3. 耐磨性&#…

收集一些PostgreSQL的题目

文章目录 1. 详述PostgreSQL的MVCC&#xff08;多版本并发控制&#xff09;机制是如何工作的&#xff0c;并解释它如何帮助处理并发事务&#xff1f;2. 在PostgreSQL中&#xff0c;一个查询是如何从用户输入转化为实际的数据返回的&#xff1f;请描述一下查询执行的生命周期。3…

nginx配置详解+nginx_lua模块的使用

nginx基本配置详解 目录 nginx基本配置详解 nginx_lua模块使用方式 openresty介绍与安装 lua基本语法使用 全局配置&#xff1a; user&#xff1a;指定Nginx主进程运行的用户。在下方示例中&#xff0c;Nginx将以root用户身份运行。worker_processes&#xff1a;指定Ngi…

【回溯专题part1】【蓝桥杯备考训练】:n-皇后问题、木棒、飞机降落【已更新完成】

目录 1、n-皇后问题&#xff08;回溯模板&#xff09; 2、木棒&#xff08;《算法竞赛进阶指南》、UVA307&#xff09; 3、飞机降落&#xff08;第十四届蓝桥杯省赛C B组&#xff09; 1、n-皇后问题&#xff08;回溯模板&#xff09; n皇后问题是指将 n 个皇后放在 nn 的国…