Hadoop的第三大组成:YARN框架

这篇具有很好参考价值的文章主要介绍了Hadoop的第三大组成:YARN框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、YARN基本概念

YARN是一个分布式资源调度系统,专门用来给分布式计算程序提供计算资源的,而且YARN只负责进行资源的提供,不管计算程序的逻辑,因此YARN这个软件非常的成功,因为YARN不关注程序计算逻辑,因此只要是分布式计算程序,只要满足YARN的运行要求,那么就可以在YARN上进行运行,由YARN进行资源调度。spark、flink等等分布式计算程序都可以在YARN上运行。

二、YARN的基本架构组成

YARN之所以提供分布式计算资源,主要原因就是因为YARN的设计架构。

1、ResourceManager:YARN集群的管理者

  • 1、负责进行资源的配置
  • 2、负责整个集群的状态
  • 3、接受客户端或者applicationmaster的资源申请

2、NodeManager

  • 1、负责接受RM给NM分配的task任务(就是资源的打包任务)
  • 2、负责启动Container容器(打包的计算程序所需的运行资源)

以上两个组成,YARN启动之后就会有的进程。

3、Container

封装了一组计算资源的容器,包含了计算程序所需的资源,资源的具体的配额都是客户端或者ApplicationMaster去向RM申请。

4、ApplicationMaster

任何一个分布式计算程序如果想在YARN上运行,分布式计算程序必须能启动一个ApplicationMaster进程,比如MR程序在YARN上运行就会启动MRAppcationMaster。这个进程不是由YARN自带的,而是分布式计算程序想在YARN上运行,分布式计算程序必须得有这么一个进程。

YARN的工作核心,YARN之所以不知道分布式计算程序的计算逻辑,还能给分布式计算程序提供资源,全凭借ApplicationMaster的存在,ApplicationMaster是分布式程序运行的核心,监控分布式计算程序有没有运行成功、负责向RM申请分布式程序运行的资源。

当有分布式计算程序在YARN上运行的时候,才会出现这两个进程。

三、YARN的详细工作流程–运行MapReduce

Hadoop的第三大组成:YARN框架,Hadoop,hadoop,大数据,分布式

​ (0)MR程序提交到客户端所在的节点

​ (1)yarnrunner向ResourceManager申请一个application。

​ (2)RM将该应用程序的资源路径返回给yarnrunner

​ (3)该程序将运行所需资源提交到HDFS上

​ (4)程序资源提交完毕后,申请运行MRAppMaster

​ (5)RM将用户的请求初始化成一个task

​ (6)其中一个NodeManager领取到task任务。

​ (7)该NodeManager创建容器Container,并产生MRAppmaster

​ (8)Container从HDFS上拷贝资源到本地

​ (9)MRAppmaster向RM 申请运行MapTask容器

​ (10)RM将运行MapTask任务分配给另外两个NodeManager,另外两个NodeManager分别领取任务并创建容器。

​ (11)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。

​ (12)MRAppmaster向RM申请2个容器,运行ReduceTask。

​ (13)ReduceTask向MapTask获取相应分区的数据。

​ (14)程序运行完毕后,MR会向RM注销自己。

四、YARN的资源调度器问题

YARN在进行资源分配的时候,RM需要先将client或者AM申请的资源初始化成为一个task任务,资源的task任务不是直接下发给NM,而是先把task任务给加入到一个RM的调度器当中,由调度器在合适的时机下发任务给NM。

YARN中一共三种的资源调度器:

  • FIFIO资源调度器

    • 是一种队列调度器,每一个任务加入到调度器中,按照时间的先后依次排列,给NM下发任务的时候,是先来的先分配,后来等待集群资源充足继续分配。
      只有一个队列,队列使用的集群中所有的资源。
    • 特点:如果有些任务比较重要,必须排队,只有等到队列中你排到了最前面了才会给你分配。
    • Hadoop1.x版本YARN默认的调度器机制
  • 容量调度器

    • 也是一个队列调度器,但是多个队列并行进行分配,每一个队列具备YARN集群中的部分资源。在同一个时刻,可以下发多个任务。
    • Hadoop2.x和hadoop3.x默认调度器
  • 公平调度器

    • 也是可以具备多个队列,每个队列具备集群中的部分资源,不一样的地方在于每一个队列中的任务不等待,每一个任务都会启动,均匀的享有集群的资源。
  • 修改:yarn-site.xml

    • yarn.resourcemanager.scheduler.class
      org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
      

默认使用的容量调度器,容量调度器可以有多个队列,每一个队列占用集群的部分资源,默认情况下容量调度只有一个队列default,队列占有集群的所有资源,如果配置容量调度器的第二个队列:capacity-scheduler.xml。

  • <property>
        <name>yarn.scheduler.capacity.root.queues</name>
        <value>default,queueA</value>
        <description>
          The queues at the this level (root is the root queue).
        </description>
      </property>
    容量调度器有几个队列
    
  • <!-- default 队列占用的资源容量百分比 40% -->
    <property>
        <name>yarn.scheduler.capacity.root.default.capacity</name>
        <value>40</value>
      </property>
      <!-- default 队列占用的最大资源容量百分比 60%-->
      <property>
        <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
        <value>60</value>
      </property>
    
  • 如果要配置多个队列,保证多个队列的capacity加起来是100,每一个队列的最大占用容量要大于等于配置队列容量。

五、YARN的web网站问题

YARN提供一个web网站,http://ip:8088,通过这个web网站,可以查看YARN集群的资源信息和队列信息,以及可以查看YARN上运行的分布式计算程序的状态以及运行的日志输出。

存在问题

  • 1、YARN记录的分布式运行程序,只是本次开启有效,如果YARN关闭重启了,那么以前在YARN上运行的日志全部消失了。
  • 2、YARN记录的分布式运行程序,在网站上看不到详细的日志信息,因此后期维护或者查看MR运行信息就很麻烦了。

解决上述问题的方案

  • 第一步:配置MapReduce的历史服务器JobHistory,可以帮助YARN记忆以前开启的时候运行的MR程序。
    历史服务器的配置主要在mapred-site.xml文件中配置,主要配置两项

    • <property>
            <name>mapreduce.jobhistory.address</name>
             <value>single:10020</value>
      </property>
      <property>
          <name>mapreduce.jobhistory.webapp.address</name>
          <value>single:19888</value>
      </property>
      
    • 如果使用历史服务器,必须启动历史服务器,如果不启动,历史服务器不会记录YARN上运行的分布式计算程序
      mr-jobhistory-daemon.sh start historyserver

  • 第二步:配置YARN聚合MapReduce运行日志信息–可以在YARN的web界面查看MR的详细日志
    配置yarn-site.xml文件文章来源地址https://www.toymoban.com/news/detail-702097.html

    • <!-- 日志聚集功能启动 -->
      <property>
          <name>yarn.log-aggregation-enable</name>
          <value>true</value>
      </property>
      <!-- 日志保留时间设置7天 -->
      <property>
              <name>yarn.log-aggregation.retain-seconds</name>
              <value>604800</value>
      </property>
      
      <property>
             <name>yarn.log.server.url</name>
             <value>http://single:19888/jobhistory/logs</value>        
      </property>
      

到了这里,关于Hadoop的第三大组成:YARN框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop的第二个核心组件:MapReduce框架第一节

    Hadoop解决了大数据面临的两个核心问题:海量数据的存储问题、海量数据的计算问题 其中MapReduce就是专门设计用来解决海量数据计算问题的,同时MapReduce和HDFS不一样的地方在于,虽然两者均为分布式组件,但是HDFS是一个完善的软件,我们只需要使用即可,不需要去进行任何

    2024年02月09日
    浏览(34)
  • Hadoop的第二个核心组件:MapReduce框架第四节

    MapReduce可以对海量数据进行计算,但是有些情况下,计算的结果可能来自于多个文件,每个文件的数据格式是不一致,但是多个文件存在某种关联关系,类似于MySQL中外键关系,如果想计算这样的结果,MR程序也是支持的。这种计算我们称之为join计算。 MR的join根据join数据的位

    2024年02月09日
    浏览(61)
  • Hadoop的第二个核心组件:MapReduce框架第三节

    InputFormat阶段 :两个作用 负责对输入的数据进行切片,切片的数据和Mapper阶段的MapTask的数量是相对应的。 负责MapTask读取切片数据时,如何将切片的数据转换成为Key-value类型的数据,包括key-value的数据类型的定义。 Mapper阶段 作用处理每一个切片数据的计算逻辑。 map方法的执

    2024年02月09日
    浏览(47)
  • Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

    视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8 Hadoop入门学习笔记(汇总) 本次YARN的部署结构如下图所示: 当前,共有三台服务器(虚拟机)构成集群,集群规划如下所示: 主机 部署的服务 node1 ResourceManager、N

    2024年02月04日
    浏览(47)
  • 分布式计算框架Hadoop核心组件

    Hadoop作为成熟的分布式计算框架在大数据生态领域已经使用多年,本文简要介绍Hadoop的核心组件MapReduce、YARN和HDFS,以加深了解。 1、Hadoop基本介绍 Hadoop是分布式计算框架,主要解决海量数据的存储和计算问题。Hadoop主要组件包括分布式文件系统HDFS、分布式离线并行计算框架

    2024年02月06日
    浏览(44)
  • 大数据开发之Hadoop(Yarn)

    思考: 1、如何管理集群资源? 2、如何给任务合理分配资源? Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 YARN主要由ResourceManager、NodeManager、ApplicationMas

    2024年01月19日
    浏览(45)
  • Hadoop学习指南:探索大数据时代的重要组成——Hadoop概述

    在当今大数据时代,处理海量数据成为了一项关键任务。Hadoop作为一种开源的分布式计算框架,为大规模数据处理和存储提供了强大的解决方案。本文将介绍Hadoop的组成和其在大数据处理中的重要作用,让我们一同踏上学习Hadoop的旅程。 1)Hadoop是一个由Apache基金会所开发的

    2024年02月14日
    浏览(44)
  • 大数据课程D4——hadoop的YARN

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解YARN的概念和结构; ⚪ 掌握YARN的资源调度流程; ⚪ 了解Hadoop支持的资源调度器:FIFO、Capacity、Fair; ⚪ 掌握YARN的完全分布式结构和常见问题; ⚪ 掌握YARN的服役新节点操作; 1. Another Resource Negotiator

    2024年02月14日
    浏览(33)
  • 大数据技术之Hadoop:Yarn集群部署(七)

    目录 一、部署说明 二、集群规划 三、开始配置 3.1 MapReduce配置文件 3.2 YARN配置文件 3.3 分发配置文件 四、集群启停 4.1 命令介绍  4.2 演示 4.3 查看YARN的WEB UI页面 Hadoop HDFS分布式文件系统,我们会启动: NameNode进程作为管理节点 DataNode进程作为工作节点 SecondaryNamenode作为辅

    2024年02月09日
    浏览(56)
  • 大数据面试题集锦-Hadoop面试题(四)-YARN

    你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案。如果你需要更多的面试经验和面试题,关注一下\\\" 张飞的猪大数据分享 \\\"吧,公众号会不定时的分享相关的知识和资料。 目录 1、为什么会产生 yarn,它解决了什么问题,有什么优势? 2、简述hadoop1与h

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包