当前位置: 首页 > 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工具来执行应用的安装和查询应用宝的信息、系统权限、…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

Python的__call__ 方法

在 Python 中&#xff0c;__call__ 是一个特殊的魔术方法&#xff08;magic method&#xff09;&#xff0c;它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时&#xff08;例如 obj()&#xff09;&#xff0c;Python 会自动调用该对象的 __call__ 方法…...

计算机系统结构复习-名词解释2

1.定向&#xff1a;在某条指令产生计算结果之前&#xff0c;其他指令并不真正立即需要该计算结果&#xff0c;如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方&#xff0c;那么就可以避免停顿。 2.多级存储层次&#xff1a;由若干个采用不同实现技术的存储…...