这里写自定义目录标题

  • Yarn概述
  • Yarn组成
  • Yarn工作机制
  • 调度器


Yarn概述

  • Yarn ,负责hadoop中的资源调度,相当于一个分布式的操作系统,mapreduce等程序运行于yarn上

Yarn组成

  • 1.RM(Resource Manager)
    处理客户端请求
    监控各个node manager的资源
    开启AM
    分配和调度资源
    注:RM只负责资源的管理和发放,不负责程序的运行
  • 2. NM(Node Manager)
    管理单个服务器上的资源并向RM汇报
  • 3. AM(APP Master)
    有任务时才开启,任务结束后关闭
    负责整个应用程序的运行(资源申请及任务分配)
  • 4. Container
    资源容器,RM以container形式发放资源(封装了内存、CPU等资源)
    只有在运行程序时存在

Yarn工作机制

hadoop yarn 模式 hadoop中yarn的作用_客户端

  • –1. 客户端提交job时首先连接集群,同时会创建Yarn Runner
  • –2. Yarn Runner会向RM申请一个Application
  • –3. RM收到请求后返回资源提交路径stag和JobId
  • –4.Yarn Runner将运行Job所需的资源提交到stag和JobId拼接后的路径下
    提交资源包括(程序jar包,切片信息,配置文件)
  • –5. 提交之后,Yarn Runner向RM申请运行APP Master
  • –6. RM收到请求后先放到调度队列中,当于空余资源时,将该任务派发给其中某个有资源的NM
  • –7. NM收到任务后就会创建一个Container用来运行APP Master
  • –8. APPMaster运行起来后先将job运行所需的资源从hdfs下载到本地
  • –9. 然后根据切片信息向RM申请运行相应的Map Task的资源
  • –10. RM收到请求后先放到调度队列中,当于空余资源时,将该任务派发给下面的NM
  • –11. NM收到任务后,创建相应个数的Container来运行Map Task(每当一个MapTask运行完,所在的container资源立马被释放)
  • –12. 当所有Map Task运行完成之后,APP Master向RM申请运行相应Reduce Task的资源
  • –13. Reduce Task从Map Task获取相应的分区数据进行处理,完成之后释放资源
  • –14. 当所有的Reduce Task运行完之后APP Master会向RM注销自己
  • –15. 最后客户端会将hdfs资源提交路径下的数据删除

调度器

分类
先进先出(FIFO)、容量调度器、公平调度器

–注:默认的是容量调度器

FIFO
–按照提交顺序依次调度运行

容量调度器

可以理解为多个FIFO队列,每个队列设定一定的资源占比和使用上限

公平调度器

也是多队列,但是每个队列中的任务平分资源,并发执行,每个任务都可设最小资源值