百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

yarn架构:资源管理和任务调度

suiw9 2025-01-20 16:21 18 浏览 0 评论

  • MRv2:On YarnYarn:解耦资源与计算ResourceManager主,核心集群节点资源管理NodeManager与RM汇报资源管理Container生命周期计算框架中的角色都以Container表示Container:(节点NameNode, cpu, MEM, I/O大小,启动命令)默认NodeManager启动线程监控Container大小,超出申请资源额度,kill支持Linux内核的CgroupMRMR-ApplicationMaster-Container作业为单位,避免单点故障,负载到不同的节点创建Task需要和RM申请资源(Container)TaskContainerClientRM-Client:请求资源创建ApplicationMasterAM-Client:与ApplicationMaster交互

YARN

  • YARN: Yet Another Resource Negotiator
  • Hadoop 2.0新引入的资源管理系统核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现ResourceManager:负责整个集群的资源管理和调度ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等
  • YARN的引入,使得多个计算框架可运行在一个集群中每个应用程序对应一个ApplicationMaster目前多个计算框架可以运行在YARN上,比如MapReduce, Spark,Storm等

MapReduce On YARN: MRv2

  • 将MapReduce作业直接运行在YARN上,而不是由JobTracker和TaskTracker构建的MRv1系统中
  • 基本功能模块YARN:负责资源管理和调度MPAppMaster:负责任务切片、任务调度、任务监控和容错等MapTask/ReduceTask:任务驱动引擎,与MRv1一致
  • 每个MapReduce作业对应一个MRAppMasterMRAppMaster任务调度YARN将资源分配给MRAppMasterMRAppMaster进一步将资源分配给内部的任务
  • MRAppMaster容错失败后,由YARN重新启动任务失败后,MRAppMaster重新申请资源

YARN 作业提交流程

  1. 作业提交Job后,job.waitForCompletion(true)调用monitorAndPrintJob()方法每秒轮询作业进度,如果发现自上次报告后由改变,便把进度报告给控制台。Job的submit()方法创建一个内部的JobSubmitter实例,并调用其submitJobInternal方法。作业完成后,如果成功,就显示计数器;如果失败,这将导致作业失败的错误记录到控制台上。
  2. JobSubmitter所实现的作业提交过程如下所述:向ResourceManager资源管理器请求一个新作业的ID, 用于MapReduce作业ID。作业客户端检查作业的输出说明,计算输入分片并将作业资源(包括作业jar, 配置和分片信息)复制到HDFS通过调度资源管理器上的submitApplication()方法提交作业
  3. 作业初始化:资源管理器ResourceManager收到调用他的submitApplication()消息后,便将请求传递给调度器(scheduler)。调度器分配一个容器,然后资源管理器再节点管理器的管理下载容器中启动应用程序的master进程MapReduce作业的application master是一个javachengxu ,他的主类是MRAppMaster。他对作业进行初始化,通过创建多个簿记对象以保持队作业进度的跟踪,因为它将接受来自任务的进度和完成报告。任务接受来自共享文件系统再客户端计算的输入分片。对每一个分片创建一个map任务对象以及由mapreduce.job.reduces属性确定多个reduce任务对象
  4. 任务分配AppMaster为该作业中的所有map任务和reduce任务向资源管理器请求容器
  5. 执行任务一旦资源管理器的调度器为任务分配了容器,AppMaster就通过与节点管理器NodeManager通讯来启动容器该任务由主类为YarnChild的Java应用程序执行。在它允许任务之前,首先将任务需要的资源本地化,包括作业的配置,JAR文件和所有来自分布式缓存的文件最后运行map任务或reduce任务
  6. 进度和状态更新在YARN运行时,任务每3秒通过umbilical接口向AppMaster汇报进度和状态。客户端每1秒钟(通过mapreduce.client.Progressmonitor.pollinterval设置)查询一次AppMaster以接受进度更新,通常都会向客户显示。
  7. 作业完成
  8. 除了向AppMaster查询进度外,客户端每5秒钟还通过调用Job的waitForCompletion()来检查作业是否完成。查询的间隔可以通过mapreduce.client.completion.pollinterval()属性进行配置。

相关推荐

俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)

发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...

如何强制所有流量使用 HTTPS一网上用户

如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...

https和http的区别(https和http有何区别)

“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...

快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别

什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...

简述HTTPS工作原理(简述https原理,以及与http的区别)

https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...

21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)

HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...

为什么有的网站没有使用https(为什么有的网站点不开)

有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

图解HTTPS「转」(图解http 完整版 彩色版 pdf)

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP与HTTPS的区别,详细介绍(http与https有什么区别)

HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...

一文让你轻松掌握 HTTPS(https详解)

一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...

如何在Spring Boot应用程序上启用HTTPS?

HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...

一文彻底搞明白Http以及Https(http0)

早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...

取消回复欢迎 发表评论: