一文搞懂Yarn基础知识点 | 您所在的位置:网站首页 › 透射电镜基础知识点 › 一文搞懂Yarn基础知识点 |
Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台 Yarn基本架构 Resource Manager(RM) 处理客户端请求 监控Nodemanager 启动或监控ApplicationMaster 资源的分配与调度NodeManager(NM) 管理单个节点上的资源 处理来自Resouremanager的命令 处理来自ApplicationMaster的命令ApplicationMaster(AM) 负责数据的切分 为应用程序申请资源分配任务 任务的监控与容器Container 资源抽象-封装某个节点上的多维资源、如内存、CPU、磁盘、网络Yarn任务推测执行 基本假设 作业完成时间取决于最慢的任务完成时间推测执行机制 前提条件 每个Task只能有一个备份任务 当前Job已完成Task必须不少于5% 开启推测执行参数设置 mapred-site.xml 不能使用推测执行机制的情况 任务间存在严重的负载倾斜 特殊任务,比如任务向数据库中写数据Yarn资源调度器 FIFO 单队列,First In First OutCapacity Scheduler 多队列,FIFO 如何选择进入哪一个队列 正在运行的任务数/应分得的计算资源 得出比值最小即最闲的队列Fair Scheduler 多队列,可同时运行多个任务 优先级概念:理想获得资源-实际获得资源详解Yarn工作机制 (1)MR程序提交到客户端所在的节点。 (2)YarnRunner向ResourceManager申请一个Application。 (3)RM将该应用程序的资源路径返回给YarnRunner。 (4)该程序将运行所需资源提交到HDFS上。 (5)程序资源提交完毕后,申请运行mrAppMaster。 (6)RM将用户的请求初始化成一个Task。 (7)其中一个NodeManager领取到Task任务。 (8)该NodeManager创建容器Container,并产生MRAppmaster。 (9)Container从HDFS上拷贝资源到本地。 (10)MRAppmaster向RM 申请运行MapTask资源。 (11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。 (12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。 (13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。 (14)ReduceTask向MapTask获取相应分区的数据。 (15)程序运行完毕后,MR会向RM申请注销自己。 |
CopyRight 2018-2019 实验室设备网 版权所有 |