Hadoop——分布式资源管理框架YARN总结

YARN(Yet Another Resource Negotiator)是Hadoop的资源管理框架,提供通用的统一资源管理系统,支持长短期应用程序的运行。YARN通过ResourceManager、NodeManager、ApplicationMaster等组件实现资源分配、调度和管理。它改善了MapReduce的性能,支持多框架运行,并具备快速计算和资源隔离的优势。YARN的工作流程包括ApplicationMaster启动、资源申请、任务管理等步骤,确保集群资源的有效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布式资源管理框架YARN

1. YARN概述

  YARN是“Yet Another Resource Negotiator”的简称。
  在进一步了解 YARN 框架之前我们需要知道,相比较而言,MapReduce 则是 YARN 的一个特例。 YARN 则是 MapReduce 的一个更加通用和高级的框架形式,并在其上增加了更多的功能。例如通过加载分布式执行脚本可以在集群节点上执行独立的脚本任务,并且更多功能正在被追加中。
  所以我们可以看到,YARN 可以直接运行在 MapReduce 运行的框架上而不会造成更多的干扰,并且会为集群的运算带来更多的好处。更一步的开发显示了 YARN 会允许开发者根据自己的需求运行不同版的MapReduce 在集群中,这将为开发者提供更为便捷的服务。
  普遍认为,云计算包括以下几个层次的服务: IaaS、PaaS和SaaS。这里所谓的层次,是分层体系架构意义上的“层次”。laas. Paas、 Saas分别实现在基础设施层、软件开放运行平台层、应用软件层。

  • IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。laas 通过网络向用户提供计算机(物理机和虚拟机)、存储空间、网络连接、负载均衡和防火墙等基本计算资源;用户在此基础上部署和运行各种软件,包括操作系统和应用程序等。
  • PaaS(Platform-as-a-Service):平台即服务。PaaS 是将软件研发的平台作为一种服务,以SaaS的模式提交给用户。平台通常包括操作系统、编程语言的运行环境、数据库和Web服务器等,用户可以在平台上部署和运行自己的应用。通常而言,用户不能管理和控制底层的基础设施,只能控制自已部署的应用。
  • SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。云提供商在云端安装和运行应用软件,云用户通过云客户端(比如Web浏览器)使用软件。

  从云计算分层概念上讲,YARN可看做PAAS层,它能够为不同类型的应用程序提供统一的管理和调度。

2. YARN 设计目标

  通用的统一资源管理系统
  同时运行长应用程序和短应用程序

  • 长应用程序
    通常情况下,永不停止运行
    Service(Spark、Storm)、HTTP Server等
  • 短应用程序
    短时间(秒级、分钟级、小时级)内会运行结束的程序
    MR job、Spark Job等

3.Hadoop1 MapReduce (架构理解图)

在这里插入图片描述

4. YARN架构

在这里插入图片描述
关于上图架构 ,主要包括以下几种角色
ResourceManager(RM):
  主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
NodeManager:
  主要是节点上的资源管理,启动Container运行task计算,上报资源、container情况给RM和任务处理情况给AM。
ApplicationMaster:
  主要是单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发launch Container指令,接收NM的task处理状态信息。

ResourceManager是Yarn的核心, 负责调度Application master, 来给每个NodeManager分配资源, 资源储存在Container中, 此处的资源包括JVM,内存等, 然后将程序copy到container中运行, container还需要回报状态给App master, 再有app master汇报给Resource manager, nodeManager也要按时汇报ResourceManager当前节点的资源使用情况.
下面简单介绍以下提交一个job的处理过程
1、client submit一个job到RM,进入RM中的Scheduler队列供调度(Scheduler负责申请资源)
2、RM根据NM汇报的资源情况(NM会定时汇报资源和container使用情况),请求一个合适的NM launch container,以启动运行AM
3、AM启动后,注册到RM上,以使client可以查到AM的信息,便于client直接和AM通信
4、AM启动后,根据Job 相关的split的task情况,会和RM协商申请container资源
5、RM分配给AM container资源后,根据container的信息,向对应的NM 请求launch container
6、NM启动container运行task,运行过程中向AM汇报进度状态信息,类似于MRv1中 task的汇报;同时NM也会定时的向RM汇报container的使用情况。
7、在application(job)执行过程中,client可以和AM通信,获取application相关的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值