栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【HADOOP】浅谈Yarn的工作机制

【HADOOP】浅谈Yarn的工作机制

Yarn 的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。

  1. 首先Client(客户端)调用job.waitForCompletion 方法,向整个集群提交MapReduce作业;
  2. 这个时候YarnRunner 会向ResourceManager(RM) 申请一个Application(作业);
  3. 这时RM 会给Client 返回当前Job 资源的提交路径和 一个Application_id(作业ID);
  4. 收到申请到的作业ID后,Client提交jar 包、切片信息(.splits)和配置文件(.xml)到指定的资源提交路径;
  5. 程序资源提交完毕后,Client 接着向RM 请求运行MrAppMaster;
  6. RM 收到请求,将请求初始化成一个Task,并添加到 Capacity Scheduler(默认容量调度器);
  7. 待当某一个空闲的NodeManager(NM) 领取到该Task 任务;
  8. 该NM会创建一个Container(动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量。),并产生MRAppmaster;
  9. 然后该NM会从HDFS上拷贝该Job所提交的资源到本地;
  10. 根据Job提交信息,MRAppmaster 会向RM 申请运行多个MapTask任务资源;
  11. RM 根据 MRAppmaster 的申请添加到 Capacity Scheduler。
  12. 待 有空闲的NodeManager 领取到该任务,会在本地也创建Container;
  13. 然后RM 会将领取到任务的NM 发送程序启动脚本;
  14. 脚本启动后,NM 会启动 MapTask 对数据进行处理;
  15. MrAppMaster 等待所有的MapTask运行完毕之后,又会向RM申请容器运行ReduceTask;
  16. ReduceTask向MapTask获取相应分区的的数据,进行运行;
  17. 当程序运行完毕,MrAppMaster会向RM注销自己。


目前,Hadoop作业调度器主要有三种:FIFO(先进先出)、Capacity Scheduler(容量 )和Fair Scheduler(公平)。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。


    The class to use as the resource scheduler.
    yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674259.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号