【Hadoop】Yarn —— 调度计算核心


资料来源:拉勾大数据训练营【第二期】

概述

YarnHadoop 2.x 引入的新的资源管理系统模块,主要用于管理集群当中的资源(主要是服务器的各种硬件资源,比如内存CPU等),它不光管理硬件资源,还管理运行的一些任务信息等。

Yarn调度资源可以分为两个层级:
一级管理调度:管理计算机的资源、运行job任务的生命周期
二级管理调度:任务的计算模型(maptask,reducetask的代码)、多样化的计算模型(spark,storm)


主要角色

角色作用
ResourceManage主节点,主要用于接受用户请求,分配资源
NodeManager从节点,主要用于处理任务的计算
ApplicationMaste申请资源,分配资源(分配 Container ),监控任务执行的进度状况,回收资源,和 ResourceManager 通信,报告任务的执行状况“自杀”
Container资源分配的单位,所有的资源都是以 Container 的形式来进行划分的,便于资源的分配和回收
JobHistoryServer历史完成的任务信息
TimeLineServer2.4版本之后出来的新特性,查看正在执行任务的信息

运行流程(重点)

在这里插入图片描述

1. 客户端向 ResourceManagement 提交 运行的请求 (hadoop jar xxxx.jar)。
2. ResourceManager 进行检查,没有问题的时候,向客户端返回一个共享资源的路径以及 JobId
3. 客户端HDFS 提交资源,将共享资源放入共享路径下(/tmp/hadoop-yarn/staging-dir/xxxxxxxx)。
4. 客户端ResourceManager 反馈共享资源放置完毕,进行 job 的正式提交。
5. ResourceManager 为这个 job 分配一个节点,并在这个节点上启动 MRAppMaster 任务。
6. ResourceManager 到对应的节点上去启动 Container 容器用于装载 MRAppMaster
7. MRAppMaster 对 job 进行初始化,生成一个 job 工作簿,job 的工作簿记录着 MapTask 和 ReduceTask 的运行进度和状态。
8. MRAppMasterResourceManager 申请 MapTaskReduceTask 的运行的资源,先发 MapTask 然后发 ReduceTask
9. ResourceManagerMRAppMaster 返回 MapTaskReduceTask 的资源节点。


调度策略

fifo 队列调度器(first in first out)(一般没人用)
运行规则:第一个任务来了,先执行,第二个任务来了,等着
弊端:如果有一个很大的计算任务先来,需要执行两个小时,再来一个小任务,需要两分钟,第二个任务必须要等第一个完成。

capacity scheduler 容量调度器(apache 的 hadoop 版本默认使用的调度器)
运行规则:将集群的资源,划分成好几个队列,任务提交的时候,可以选择不同的队列进行提交。
优点:根据提交任务需要资源的大小不同,可以将任务划分到不同给的队列下面去。

第三种fair scheduler 公平调度器(CDH 版本的 hadoop 默认的调度规则)
运行规则:如果没有任务提交,收到第一个任务,将进群当中所有的资源全部给第一个任务,如果此时收到第二个任务,就会将第一个任务的资源划分一点出来给第二个任务,让第二个任务也可以执行,以此类推,保证每一个任务都可以公平地一起执行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值