Hadoop资源调度器——Yarn

青春壹個敷衍的年華 提交于 2020-02-28 07:57:57

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序

Yarn的基本架构

Yarn主要由:ResourceManager、NodeManger、ApplicationMaster和Container等组件构成。

Yarn工作机制

  1. 客户端提交作业到APPManager,申请jobID,这个ID是唯一的
  2. ResourceManager返回一个作业ID,并将路径发送给客户端
  3. 客户端将运行所需要的资源(jar包、配置文件、分片信息等)向指定HDFS路径上传
  4. 上传成功后,向ResourceManager发送请求:执行作业
  5. APPManager将请求转发给调度器
  6. 调度器将任务放置队列中,当执行到请求的时候,则开始让AppManager分配容器,调用节点资源管理器开辟资源池,启动AppMaster
  7. 命令节点管理器开辟容器启动AppMaster
  8. AppMaster开始接收HDFS的共享文件,然后根据切片信息,创建map任务、reduce任务
  9. 向调度器请求资源,开辟map、reduce任务
  10. 返回执行信息
  11. 通知NodeManager启动任务
  12. NodeManager启动任务
  13. map、reduce任务接收共享文件数据
  14. 任务完成之后AppMaster通知AppManager释放资源

资源调度器

Hadoop作业调度器主要有三种:FIFO、Capacity Schedule 和 Fair Schedule。Hadoop2.7.2默认的资源调度器是Capacity Schedule。具体设置:yarn-default.xml

<property> 
  <description>The class to use as the resource scheduler.</description> 
  <name>yarn.resourcemanager.scheduler.class</name> 
  <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> 
</property>

 

FIFO(先进先出调度器)

Capacity Scheduler(容量调度器)

Fair Scheduler(公平调度器)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!