什么是Label based scheduling?

故名思议,Label based scheduling是一种调度策略,就像priority-based scheduling一样,是调度器调度众多调度策略中的一种,可以跟其他调度策略混合使用,实际上,hadoop也是这样做的。但是,相比于其他调度策 略,基于标签的调度策略则复杂的多,这个feature的代码量非常大,基本上需要修改YARN的各个模块,包括API, ResourceManager,Scheduler等。该策略的基本思想是:用户可以为每个nodemanager标注几个标签,比如 highmem,highdisk等,以表明该nodemanager的特性;同时,用户可以为调度器中每个队列标注几个标签,这样,提交到某个队列中的 作业,只会使用标注有对应标签的节点上的资源。举个例子:

比如最初你们的hadoop集群共有20个节点,硬件资源是32GB内存,4TB磁盘;后来,随着spark地流行,公司希望引入spark计算框 架,而为了更好地运行spark程序,公司特地买了10个大内存节点,比如内存是64GB,为了让spark程序与mapreduce等其他程序更加和谐 地运行在一个集群中,你们希望spark程序只运行在后来的10个大内存节点上,而之前的mapreduce程序既可以运行在之前的20个节点上,也可以 运行在后来的10个大内存节点上,怎么办?有了label-based scheduling后,这是一件非常easy的事情,你需要按一以下步骤操作:

步骤1:为旧的20个节点打上normal标签,为新的10个节点打上highmem标签;

步骤2:在capacity scheduler中,创建两个队列,分别是hadoop和spark,其中hadoop队列可使用的标签是nornal和highmem,而spark则是highmem,并配置两个队列的capacity和maxcapacity。

如何配置使用Label based scheduling?

首先,要选择apache hadoop 2.6或hdp2.2(可使用ambari部署)发行版。

之后按照以下步骤操作:

步骤1:添加系统级别的label(相当于所有label的全集),注意,各个节点上的label必须都在系统级别的label中。

yarn rmadmin -addToClusterNodeLabels normal,highmem

步骤2:为各个节点分别添加label(可动态修改)

yarn rmadmin -replaceLabelsOnNode “nodeId,label1,label2,…,labeln”

注意,nodeId是nodemanager的唯一标示,注意,一个节点上可以有多个nodemanager,每个nodemanager的 nodeid可以在ResourceManager界面上看到,通常有host和PRC port拼接而成,默认情况下,各个nodemanager的RPC port是随机选取的,你可以将所有的nodemanager配置成一样的,便于管理:

yarn.nodemanager.address

0.0.0.0:45454

步骤3:配置label重启恢复功能。这样,label信息会保存到hdfs上(默认是保存在内存中的),之后yarn重新启动,可以自动恢复所有label信息:

yarn.node-labels.manager-class

org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager

步骤4:修改capacity scheduler相关配置,设置每个队列对应的label,以及每中label的资源上下限。具体配置,可参考相关资源。

总结

基于标签的调度策略是hadoop yarn新引入的feature,它能让YARN更好地运行在异构集群中,进而更好地管理和调度混合类型的应用程序。

Yarn新的资源调度策略-label based scheduling相关推荐

  1. 用遗传算法GA改进CloudSim自带的资源调度策略

    首先理解云计算里,资源调度的含义: 看了很多云计算资源调度和任务调度方面的论文,发现很多情况下这两者的意义是相同的,不知道这两者是同一件事的不同表述还是我没分清吧,任务调度或者资源调度大概就是讲这样一 ...

  2. 调整disk1爆盘阈值调整YARN内存总资源

    ⭐调整disk1爆盘阈值 disk1使用到90就会nodemanager掉线,调整使之不爆盘可以正常启动服务/etc/*/SERVICE-HADOOP-*/yarn-site.xml下的参数: ​&l ...

  3. Hadoop详解(十二):Yarn资源调度策略

    在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler. FIFO Scheduler FIFO Scheduler把应用 ...

  4. 【深入浅出 Yarn 架构与实现】5-3 Yarn 调度器资源抢占模型

    本篇将对 Yarn 调度器中的资源抢占方式进行探究.分析当集群资源不足时,占用量资源少的队列,是如何从其他队列中抢夺资源的.我们将深入源码,一步步分析抢夺资源的具体逻辑. 一.简介 在资源调度器中,以 ...

  5. 推荐 | 有三AI生态新的资源干货集中营,好书好工具好内容等你来淘

    微信公众号 今天给大家推荐一个微信公众号<有三言选>,是有三AI团队维护的资源干货集中营,专栏包括有三图书馆,AI好书推荐,好工具,好技术专栏,好资源,好星球,好课程以及定期举行的送书福利 ...

  6. Echarts 新认知 地图的label到底怎么居中?

    试过了offset和很多Api,都无法实现label居中 后来无意中发现,原来在geojson注册的时候,可以定义 properties.cp 属性,实现文本的坐标自定义,实现居中. echarts. ...

  7. 【hadoop】Yarn【label-based scheduling】实战总结

    1.概述 转载:Yarn[label-based scheduling]实战总结 2. Label-based scheduling介绍 故名思议,Label based scheduling是一种调 ...

  8. 2、MapReduce与YARM

    MapReduce 离线计算引擎 一.Mapreduce 的基本概念 Mapreduce 是一个分布式的计算框架,提供计算的模型,框架和平台,它易于编程,我们在进行功能组件开发的时候只需要通过代码表达 ...

  9. 秒级处理海量数据,浙江移动大数据平台是怎么做到的?

    近年来,随着云计算.移动互联网.物联网等技术的发展,以及智能手机.平板电脑等终端设备的不断涌现,各种类型的电商.社交媒体等应用快速发展,产生了海量的数据,并且数据量增长的速度越来越快,庞大的数据资源引 ...

最新文章

  1. 刘云鹏:大数据,让我离生活更近 | 优秀毕业生专访
  2. python读取txt文件内容-python如何获取txt文本文件中的内容
  3. linux搜索关键字并定位,Linux系统中文件定位与查找(示例代码)
  4. php去除所有标点符号的方法,php如何去除标点符号
  5. epic关于win7报错缺失api-ms-win-downlevel-kernel32-l2-1-0.dll
  6. 一次性尿袋行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. R2: 相关系数、复相关系数及半偏相关系数之间的联系
  8. HDU-2036 改革春风吹满地 (多边形面积求解)
  9. java会议记录管理系统实验报告代码_会议记录管理系统
  10. Ubuntu 配置 SFTP 服务器
  11. R-CNN解读+代码梳理
  12. 原生小程序 引入vant-weapp 组件库 和 WeUI组件库
  13. 十五至尊图(第六版)
  14. 使用python lxml库中的xpath、etree爬取网页超链接
  15. 公有云平台专题《中移云平台,NB-IoT模组对接中移OneNET平台》
  16. DDD 实战 (11):冲刺 1 代码 TDD 实现之道
  17. Linux 常用命令全拼
  18. HTML5作业:美食网站设计(浮动的使用)
  19. 从零基础到精通的Python学习路线(附教程)
  20. 二分图——洛谷P3386 【模板】二分图匹

热门文章

  1. 基于物联网的环境调节系统(ESP32-C3+Onenet+微信小程序)
  2. 分享复习经验和后台开发面经,已拿offer入职
  3. ifconfig与 ip addr命令详细
  4. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(1)- 环境搭建(Python2.7.14 + pySerial3.4 + wxPython4.0.3)...
  5. Java多线程-将全量用户表70万数据压缩并生成CSV文件和推送到FTP上(最快快方式)
  6. 用“找回你”,查找手机号的前身都被注册过些什么……
  7. SpringBoot开启定时任务
  8. 算法和设计模式(面经)
  9. 一个著名的任务调度系统是怎么设计的?
  10. java properties 遍历_如何遍历properties文件的键值对并放置到application作用域里