【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(四) NodeLabel调度

简介: 转载自xingbao各位好,这是介绍阿里云伏羲(fuxi)调度器系列文章的第四篇,今天主要介绍NoedLabel的调度策略 一、FuxiMaster简介 FuxiMaster和Yarn非常相似,定位于分布式系统中资源管理与分配的角色:一个典型的资源分配流程图如下所示: 作为调度器,目前FuxiM

免费开通大数据服务:https://www.aliyun.com/product/odps

转载自xingbao
各位好,这是介绍阿里云伏羲(fuxi)调度器系列文章的第四篇,今天主要介绍NoedLabel的调度策略

一、FuxiMaster简介

FuxiMaster和Yarn非常相似,定位于分布式系统中资源管理与分配的角色:一个典型的资源分配流程图如下所示: 




作为调度器,目前FuxiMaster支持的功能主要有:

1、 多租户管理

2、 调度模型及FIFO/FAIR调度策略

3、 针对在线服务保持资源强稳定

4、支持NodeLabel动态划分集群(本文)

5、支持多机房调度

6、支持基于优先级的交互式抢占

7、支持AllOrNothing调度

8、支持基于硬件ID化的调度

9、单Master目前支持2w台机器的规模

10、......


一、NodeLabel的定义

 
NodeLabel的定义是placement constraints: which resources are consumed;在使用上,是对集群内机器进行静态划分,比如将SSD机器于SATA机器分开供不同的类型的作业使用;又或者控制在线服务和离线作业在同一个集群内混跑,但是跑在不同机器上以消除互相影响。 总之,NodeLabel功能使得将异构的机器或者异构作业部署在同一个集群变的更加容易
 
那对于NodeLabel用户会存在什么样的需求呢?
 
1、用户会提出基于若干Label组合的请求,比如:用户作业必须只能跑在操作系统是Linux、磁盘类型是SSD、内核版本是2.0的机器上,这就需要资源调度器能够筛出符合所有标签组合的机器。
 
2、用户对label的请求不一定是严格等于,可能是“大于”、“小于”这样的语义。例如:用户的作业可以跑在内核版本大于等于2.0的机器上,所以内核版本是2.0、2.1、2.2的机器都是可以分配给用户作业的,即:资源调度器能够支持用户作业中的标签请求具有比较运算符的语义,如大于、小于、不等于等等。
 
3、用户会对label请求描述“态度”:有的用户作业必须跑在具有某些标签的机器上,如果资源调度器发现在这些机器上没有可用的资源,那么用户作业宁可排队等待,我们称这种“态度”为强制的。有的用户作业要求尽量跑在具有某些label的机器上,这些机器没有资源时,用户作业也希望资源调度器能够分配其他不符合标签请求的机器上,我们称这种“态度”是非强制性的。
 
4、自适应物理拓扑,满足在RACK\SWITCH\ENGINEROOM\CLUSTER拓扑下面挑选满足条件的label机器
 
5、支持机器支持label排他的语义: 当机器处于label排他状态时,本机器只能让label请求满足条件的作业跑上来; 反之,当机器处于非label排他状态时,本机器可以让label请求不满足的作业也能跑上来,这个主要是针对提高资源的利用率,尤其是在线离线混步的场景


二、NodeLabel调度的实现


1、Label的定义

机器标签用“主键、键值”的组合来描述。假设一台机器的标签为:内核(Kernal)版本是1.9、操作系统(OS)是linux、磁盘(Disk)类型是SATA,那么内核(Kernal)版本、操作系统(OS)、磁盘(Disk)类型就是主键、而1.9、linux、SATA就是每一个主键对应的键值。每一个主键可以对应多个键值,如:内核(Kernal)版本有1.9、2.0、2.1三个值,操作系统(OS)有linux、windows两个值。对于一台机器,每一个主键只能用对应一个键值,即机器的操作系统(OS)不可能即是linux又是windows,, 上述如下图所示:




2、对label的申请描述

申请标签资源时,会以“主键、运算符、键值”的组合方式向FuxiMaster申请资源,例如,申请“内核(Kernal)版本大于等于1.9、操作系统(OS)等于windows、磁盘(Disk)类型不等于SSD”的机器资源。这里内核(Kernal)版本、操作系统(OS)、磁盘(Disk)是“主键”,大于等于、等于、不等于是“运算符”,1.9、windows、SSD是键值。我们定义运算符可以有6种取值,分别是:等于、大于、大于等于、小于、小于等于、不等于, 如下图所示:



3、label的管理

为了下文叙述方便,我们将每一个键值用字母代替,如下图所示:


FuxiMaster在接收到机器的label后,会将每一个“主键”的“键值”提取出来,并串联起来作为这个机器的识别码,例如机器1的标签组合是“内核版本为A、操作系统类型是D、磁盘类型是F”,那么这台机器的标签识别码就是ADF。



获取了每台机器的识别码后,我们要建立两个表。第一个表是标签识别码-机器映射表:由于许多台机器可能拥有相同的标签识别码,所以我们需要知道对应每一种标签识别码,究竟对应的是哪些机器,如图所示:



另外一个表是键值-标签识别码映射表:我们需要知道对应每一个单独的键值,究竟有那些标签识别码是包含这个键值的,这在为作业管理器分配资源的时候会发挥作用,如图所示:




4、分配逻辑

通过分析请求中每个主键对应的标签,我们可以得到一组候选的label集合列表,如下图所示:




我们需要找出哪些label组合出现的次数等于请求中主键的个数,这个可以通过堆来实现,如下图所示:


5、物理拓扑

在不同的物理拓扑下,我们会分别建立上述的各种索引表:





6、Label的态度

Label的Attitude是来描述对于label的态度:

1、OPER_HARD_AFFINITY:必须要满足标签的机器,如果资源不满足就进入队列排队;

2、SOFT_HARD_AFFINITY: 尽量要满足标签的机器,如果这些机器未能满足,则也可在其他机器上分配

3、OPER_HARD_UNTI_AFFINITY: 必须不要满足条件的这些机器,如果资源不满足就进入队列排队

4、OPER_SOFT_UNTI_AFFINITY: 尽量不要满足条件的这些机器,其他机器未满足也可以在这些机器上分配


欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:

96e17df884ab556dc002c912fa736ef6558cbb51 
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
11天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
20天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
25天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
1月前
|
存储 NoSQL 大数据
新型数据库技术在大数据分析中的应用与优势探究
随着大数据时代的到来,传统数据库技术已经无法满足海量数据处理的需求。本文将探讨新型数据库技术在大数据分析中的应用情况及其所带来的优势,为读者解析数据库领域的最新发展趋势。
|
1月前
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
1月前
|
大数据 Java Go
Go语言在大数据处理中的核心技术与工具
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理领域的核心技术与工具。通过分析Go语言的并发编程模型、内存管理、标准库以及第三方工具库等方面,展现了其在大数据处理中的优势和实际应用。同时,本文也讨论了如何使用这些技术与工具构建高效、稳定的大数据处理系统,为开发者提供了有价值的参考。
|
1月前
|
分布式计算 大数据 Apache
大数据技术变革正当时,Apache Hudi了解下?
大数据技术变革正当时,Apache Hudi了解下?
25 0
|
1月前
|
分布式计算 NoSQL 大数据
探索数据宇宙:深入解析大数据分析与管理技术
探索数据宇宙:深入解析大数据分析与管理技术
55 1
|
1月前
|
算法 Java 开发工具
使用阿里云KMS产品针对 Springboot 接口参数加密解密功能
针对Springboot里面使用开源工具使用加解密,替换成阿里云KMS产品进行加解密;
137 1

相关产品

  • 云原生大数据计算服务 MaxCompute