hadoop基础三:YARN简介、组件

举报
橙子园 发表于 2022/05/26 01:21:26 2022/05/26
【摘要】 你的点赞与评论是我最大的创作动力! YARN定位 云计算三层服务: IaaS、PaaS、SaaS YARN属于PaaS层。 YARN设计目标 通用的统一资源管理系统 同时运行长应用程序和...

你的点赞与评论是我最大的创作动力!

在这里插入图片描述

YARN定位

云计算三层服务:
IaaS、PaaS、SaaS
YARN属于PaaS层。

YARN设计目标

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

YARN服务组件

1、组件

Client
ResourceManager、Application Master
NodeManager、Container

  • YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave。
  • ResourceManager负责对各个NodeManager上的资源进行统一管理和调度
  • 当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的。
  • ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。
  • 由于不同的ApplicationMaster被分布到了不同的节点上,因此他们之间不会相互影响。
2、其他组件

JobHistoryServer、TimelineServer、mr-jobhistory-daemon.sh start historyserver

ResourceManager

  • 全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配。
功能:
  • 处理客户端请求
  • 启动、监控ApplicationMaster
  • 监控NodeManager
  • 资源分配与调度

NodeManager

  • 整个集群有多个,负责单节点资源管理和使用
功能
  • 单个节点上的资源管理和任务管理
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令
NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。
定时地向RourceManager汇报本节点上的资源使用情况和各个Container的运行状态。

Application Master

  • 管理一个YARN内运行的应用程序的每个实例
功能
  • 数据切分
  • 为应用程序申请资源,并进一步分配给内部任务
  • 任务监控与容错
负责协调来自ResourceManager的资源,开通过NodeManager监视容器的执行和资源使用(CPU、内存等的资源分配)
Container
  • YARN中的资源抽象,封装某个节点上多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM向AM返回的资源便是用Container表示的。
  • YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
功能
  • 对任务运行环境的抽象
  • 描述一系列信息
  • 任务运行资源(节点、内存、CPU)
  • 任务启动命令
  • 任务运行环境

YARN优势

  • 更快地MapReduce计算
    • YARN利用异步模型对MapReduce框架的一些关键逻辑结构(如:JobIonprogress、TaskInProgress等)进行了重写,相比于MRv1,具有更快地计算速度。
  • 对多框架支持
    • YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上。
  • 框架升级更容易
    • 在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上(比如MapReduce框架,不再需要部署JobTracler、TaskTracker等服务),而是被封装成一个用户程序(lib)存放在客户端,当需要对计算框架进行升级时,只需升级用户程序库即可。

YARN资源管理

  • 资源调度和资源隔离是YARN作为一个资源管理系统,最重要和最基础的两个功能。资源调度由ResourceManager完成,而资源隔离由各个NodeManager实现。
  • ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。
  • 当谈及到资源时,我们通常指内存、CPU、IO三种资源。Hadoop YARN同时支持内存和CPU两种资源的调度
  • 内存资源的多少会决定任务的生死,如果内存不够,任务可能会运行失败;相比之下,CPU资源则不同,他只会决定任务运行的快慢,不会对生死产生影响。

Hadoop发行版本

  • Apache Hadoop
  • Cloudera —CDH
  • Hortonworks —HDP
  • MapR
  • EMC、IBM
  • Intel、华为
  • 其他

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/104433382

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。