在hadoop生态越来越完善的背景下,集群多用户租用的场景变得越来越普遍,多用户任务下的资源调度就显得十分关键了。比如,一个公司拥有一个几十个节点的hadoop集群,a项目组要进行一个计算任务,b项目组要计算一个任务,集群到底先执行哪个任务?如果你需要提交1000个任务呢?这些任务又是如何执行的?

为了解决上面的问题,就需要在hadoop集群中引入资源管理和任务调度的框架。这就是——Yarn。

YARN的发展

Yarn在第一代的时候,框架跟hdfs差不多。一个主节点jobtracker,用来分配任务和监控任务运行情况;多个从节点tasktracker,用来执行真正的计算。

这种方式还是有一定的弊端的:

  • tasktracker出现故障,会导致整个任务计算失败。
  • jobtracker压力过大,既要负责全局的任务分配,还需要时刻与tasktracker沟通。

因此,就出现了第二代的YARN。

这种模式主要的特点,就是两个地方:

jobtracker被分离为两个角色,一个是resourcemanager,简称RM,仅仅负责任务的调度和应用的管理;一个是applicationmaster,简称AM,每个应用任务都会创建一个AM,用于申请任务需要的资源并且监控任务运行状况。

YARN资源调度流程

YARN的资源调度可以看官网提供的图片:

流程大致如下:

  • client客户端向yarn集群(resourcemanager)提交任务
  • resourcemanager选择一个node创建appmaster
  • appmaster根据任务向rm申请资源
  • rm返回资源申请的结果
  • appmaster去对应的node上创建任务需要的资源(container形式,包括内存和CPU)
  • appmaster负责与nodemanager进行沟通,监控任务运行
  • 最后任务运行成功,汇总结果。

其中Resourcemanager里面一个很重要的东西,就是调度器Scheduler,调度规则可以使用官方提供的,也可以自定义。

官方大概提供了三种模式:

  • FIFO,最简单的先进先出,按照用户提交任务的顺序执行。这种方式最简单,但是也一大堆问题,比如任务可能独占资源,导致其他任务饿死等。
  • Capacity,采用队列的概念,任务提交到队列,队列可以设置资源的占比,并且支持层级队列、访问控制、用户限制、预定等等高级的玩法。
  • Fair share,基于用户或者应用去平分资源,灵活分配。

capacity和fair share都是采用队列的模式,队列内部基本上还是FIFO。并且同级的队列任务,如果一个队列是空闲的,那么另一个队列任务可以使用资源;如果这个队列又提交了任务,则会抢占或者等待资源释放,直到资源到达预定的分配比例。

总的来说,YARN的资源调度还是比较完善的。

参考

  • YARN发展史
  • YARN调度器规则
  • 《HADOOP YARN 权威指南》
本文转自博客园xingoo的博客,原文链接:[大数据之Yarn]——资源调度浅学,如需转载请自行联系原博主。

[大数据之Yarn]——资源调度浅学相关推荐

  1. 大数据培训课程Yarn资源调度器作业提交全过程

    作业提交全过程 1.作业提交过程之YARN,如图4-25所示. 大数据培训课程 图4-25 作业提交过程之Yarn 作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForC ...

  2. 大数据培训课程Yarn资源调度器任务的推测执行

    任务的推测执行 1.作业完成时间取决于最慢的任务完成时间 一个作业由若干个Map任务和Reduce任务构成.因硬件老化.软件Bug等,某些任务可能运行非常慢.大数据培训 思考:系统中有99%的Map任 ...

  3. 大数据开发工程师都需要学什么大数据课程?

    学习大数据需要的基础:java SE.EE(SSM).MySQL.Linux等,大数据的框架安装在Linux操作系统上. 大数据开发工程师都需要学什么大数据课程? 第一.需要学习Java基础 很多人好 ...

  4. 大数据开发工程师都需要学什么?

    学习大数据需要的基础:java SE.EE(SSM).MySQL.Linux等,大数据的框架安装在Linux操作系统上. 大数据开发工程师都需要学什么大数据课程? 第一.需要学习Java基础 很多人好 ...

  5. 怎么学大数据?该从哪学起?

    大数据应该学什么?如果是有基础就根据个人情况来定,如果是零基础想学习大数据,大数据应该学什么?大数据要学的东西有很多,下面列举了一些学习大数据就该学习的技术,许多想学习大数据不知道大数据应该学什么的, ...

  6. 大数据好还是不好_学python好还是大数据好?想学IT,但有点搞不清方向的人可以看看...

    这是我在某平台上看到的一个问题,学IT的话,是学python好还是学大数据好? 首先这个问题不太对,因为大数据和python,从根源上来说是两码事,就像你问我,是学做湘菜好,还是学做打铁好. 所以,学 ...

  7. 大数据人才如此稀缺,学什么专业才能从事大数据?

    随着国家对大数据政策的倾向,越来越多的人听说过这个名词,但是对它可能也是一知半解.今天时代兴华留学为大家精心整理了大数据相关的所有知识,以及美国开设数据科学专业学校的资料,希望对大家有所帮助. 01 ...

  8. 大数据杀熟的背后 -- 浅谈用户画像

    ​A有一天在某电商平台搜了"连衣裙",惊呼:"xx上的裙子好贵啊,怎么都要四五百?".B接话:"不能吧,我看看,哎?我这就两百多啊".胖里默 ...

  9. 对云计算,大数据和人工智能的浅谈(三)

    在前面的两章内容中,我们知道了云计算就像人的大脑一样,是神经中枢:大数据就像是我们所学到的知识,只有通过消化,吸收,才能创造出更大的价值.当我们把知识消化了,我们就从一个什么都不知道的baby成为了一 ...

最新文章

  1. [JS] 关于parseInt的一个小知识:[‘1‘, ‘2‘, ‘3‘].map(parseInt)
  2. 一些关于找工作的书籍
  3. 剑指offer:矩阵中的路径
  4. MAP的get与containskey
  5. Failed to connect to 127.0.0.1 port 1080: Connection refused package:git
  6. 状态机设计的一般步骤_浅谈状态机
  7. mysql索引实现原理_Mysql索引原理
  8. 上海智能网联汽车规模化示范应用启动 滴滴上线自动驾驶服务
  9. Go新手上路(时不时更新)
  10. 动手设计 CPU(一)—— 各类元件功能表
  11. mysql5.5.9_centos下mysql5.5.9编译安装
  12. php sql注入防御方法,php怎么防御sql注入
  13. mysql用户定义的完整性_Mysql(数据库完整性)
  14. Ameya详解:村田的用于人机界面和生命体征检测的压电薄膜传感器
  15. 教你做5种地图展现方法,无需代码,上手即会
  16. HDMI 连接笔记本与显示器
  17. 高校房产管理系统中周转房有哪些管理功能和范围
  18. Linux之jq命令的使用
  19. openstack官方安装文档的解析--环境配置篇(1)
  20. 百度关键词分析工具_百度网站关键词快排系统 - 网站被降权的原因分析

热门文章

  1. CAN波形解析实例(1)
  2. Mac修改系统用户名好方法(文件无丢失)
  3. update 后面能接子查询吗_只用身份证能查询CPA成绩吗?查询步骤不能忘
  4. c语言获取按键痕迹,c语言获得键盘的按键
  5. kalixfce不能启动_kali升级2019.4后切换xfce桌面
  6. php扩展dio,PHP Dio扩展新函数dio_fdopen参数返回--bad file descriptor的分
  7. 如何用计算机组添加打印机共享的打印机,工作组内打印机如何共享?
  8. linux route 刷新_linux基础命令介绍十五:推陈出新
  9. android studio 加载ffmpeg.so,Android studio使用已经编译好的ffmpeg .so库
  10. couchdb java 连接_CouchDB客户端连接的说明---Java版