当前位置: 首页 > news >正文

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中常用的三种资源调度模型,每种模型都有其适用的场景和优缺点。管理员可以根据集群的特点和需求选择合适的调度模型来管理和优化资源分配。

相关文章:

Yarn面试重点

文章目录 1. 简述Yarn集群的架构2. Yarn 的任务提交流程是怎样的?3. yarn的资源调度的三种模型 1. 简述Yarn集群的架构 YARN(Yet Another Resource Negotiator)是Hadoop 2.x引入的资源管理器,用于管理Hadoop集群中的资源和作业调…...

高速口光口通信

1.通过transceiver ip 设置好硬件连接配置 2.open example 用自己的模块替换掉tx和rx数据模块 3.大小端问题—— 4.配置gt收发器的rx的k码时候需要设置anybyte便于高效率接收。 5.开发数据产生模块和接收校验模块都需要使用TXUSRCLK2,但是TXUSRCLK线速度/内部数据位宽。——…...

python--剑指offer--15. 二进制中1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java&…...

uniapp h5 部署

uniapp 配置 服务器文件路径 打包文件结构 //nginx 配置 server {listen 8300;server_name bfqcwebsiteapp;charset utf-8;#允许跨域请求的域,* 代表所有add_header Access-Control-Allow-Origin *;#允许带上cookie请求add_header Access-Control-Allow-C…...

排序算法:快速排序(递归)

文章目录 一、创始人托尼霍尔的快速排序二、挖坑法三、前后指针法 所属专栏:C初阶 引言:这里所说的快速排序有三种,第一种是霍尔大佬自创的,还有一种叫做挖坑法,另外一种叫前后指针法 一、创始人托尼霍尔的快速排序 1.这里我们先…...

蓝桥杯每日一题(BFS)

1562 微博转发 开始思路错误点:在用拉链法保存关注信息的时候,因为要看一个用户发的有多少转发的,所以要以用户为坑位,所有关注这个坑位的用户为链表。(开始弄反了) e数组存某个用户的idx,ne是…...

【C语言】linux内核pci_save_state

一、中文注释 //include\linux\pci.h /* 电源管理相关的例程 */ int pci_save_state(struct pci_dev *dev);//drivers\pci\pci.c /*** pci_save_state - 在挂起前保存PCI设备的配置空间* dev: - 我们正在处理的PCI设备*/ int pci_save_state(struct pci_dev *dev) {int i;/* X…...

轻松打造完美原型:9款在线工具推荐

早年,UI设计师选择的工具有限,功能相对单一,大多数在线原型设计工具都是国外的,语言和网络都增加了设计工作的负担。如今,国内外有许多在线原型设计工具,不仅可以在浏览器上使用,而且还具有团队…...

Vue3中Pinia状态管理库学习笔记

pinia的基本使用 <template><div><h2>Home View</h2> <h2>count:{{ counterStore.count }}</h2><h2>count:{{ count }}</h2><button click"increment">count1</button></div> </template>…...

共谋企业出海新篇章纷享销客荣获数字中国企业峰会“卓越成果奖”

3月9日&#xff0c;2024数字中国企业峰会在杭州西湖中维香溢大酒店成功举办&#xff0c;众多数字化领域专家、知名企业 CIO 代表到场。峰会旨在推动数字化转型与创新发展&#xff0c;为企业出海和国际合作搭建交流与合作的平台。本次峰会的颁奖环节&#xff0c;纷享销客凭借其卓…...

【MySQL】group_concat 函数和 locate 函数运用之找到每篇文章的主题

力扣题 1、题目地址 2199. 找到每篇文章的主题 2、模拟表 表&#xff1a;Keywords Column NameTypetopic_idintwordvarchar (topic_id, word) 是该表的主键&#xff08;具有唯一值的列的组合&#xff09;。该表的每一行都包含一个主题的 id 和一个用于表达该主题的词。可…...

RedisCluster集群中的插槽为什么是16384个?

RedisCluster集群中的插槽为什么是16384个&#xff1f; CRC16的算法原理。 1.根据CRC16的标准选择初值CRCIn的值2.将数据的第一个字节与CRCIn高8位异或3.判断最高位&#xff0c;若该位为0左移一位&#xff0c;若为1左移一位再与多项式Hex码异或4.重复3至9位全部移位计算结束5…...

一直出现问题,发现服务器磁盘空间已满导致,腾出服务器磁盘空间命令

要解决服务器磁盘空间已满的问题&#xff0c;你可以按照以下步骤操作&#xff1a; 查看磁盘使用情况&#xff1a;使用df -h&#xff0c; du -s -h ./*命令来查看服务器的磁盘空间使用情况。查找大文件&#xff1a;使用du -a | sort -rn | head -5命令来找出占用空间最大的前5个…...

吴恩达机器学习笔记 二十三 倾斜数据集的误差指标 精确率 召回率 精确率与召回率的平衡 F1分数

如果数据集的正例和反例的比例非常倾斜&#xff0c;常用的错误指标如 准确率(accuracy) 并不好用。此时可以用精确率和召回率。 精确率&#xff08;precision&#xff09;&#xff1a;真阳的样本数/预测为阳的样本数真阳数/&#xff08;真阳假阳&#xff09; 召回率(recall):…...

无人游艇的研发和开发对于多个领域具有重要

无人游艇的研发和开发对于多个领域具有重要性。 首先&#xff0c;无人游艇可以在海上进行各种任务&#xff0c;如海洋科学研究、资源勘探和监测、海洋环境保护等。相比传统的人工操作船只&#xff0c;无人游艇可以长时间在海上工作&#xff0c;可以自动化执行任务&#xff0c;…...

在AI创业热潮下,如何抓住AI赚钱机会,实现人生逆袭

随着人工智能技术的迅猛发展,AI创业热潮正席卷全球。这不仅为科技领域的专业人士提供了无限的商机,也为普通人开辟了全新的赚钱途径。本文将为您揭示在AI创业热潮下,普通人如何抓住AI赚钱机会,实现人生逆袭,同时探讨哪些行业适合应用AI技术。 一、普通人如何抓住AI赚钱机…...

JETSON 配置并跑通 NanoDet

JETSON 配置 NanoDet 文章目录 JETSON 配置 NanoDetNanoDet 介绍源码环境搭建及测试配置 NanoDet 的环境环境配置过程中遇到的问题&#xff1a;环境配置完毕验证 NanoDet NanoDet 介绍 可以参考这个博客&#xff1a;NanoDet&#xff1a;这是个小于4M超轻量目标检测模型 源码 …...

突破编程_C++_C++11新特性(unordered_multimap)

1 概述 std::unordered_multimap 是一个哈希表实现的无序容器&#xff0c;它存储的元素是键值对&#xff0c;并且允许键的重复。这意味着同一个键可以关联多个值。在 std::unordered_multimap 中&#xff0c;元素的插入顺序是不确定的&#xff0c;并且不会因为元素的插入、删除…...

15.WEB渗透测试--Kali Linux(三)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;14.WEB渗透测试--Kali Linux&#xff08;二&#xff09;-CSDN博客 Kali工具使用 3389远…...

Android-Framework pm list packages和pm install返回指定应用信息

一、环境 高通 Android 13 注&#xff1a;Android10 和Android13有些差异&#xff0c;代码位置不变&#xff0c;参照修改即可 二、pm简单介绍 pm工具为包管理&#xff08;package manager&#xff09;的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...