【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(三) 针对在线服务的资源强稳定

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 转载自xingbao各位好,这是介绍阿里云伏羲(fuxi)调度器系列文章的第三篇,今天主要介绍针对在线服务的资源强稳定 一、FuxiMaster简介 FuxiMaster和Yarn非常相似,定位于分布式系统中资源管理与分配的角色:一个典型的资源分配流程图如下所示: 作为调度器,目前FuxiMas

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

转载自xingbao

各位好,这是介绍阿里云伏羲(fuxi)调度器系列文章的第三篇,今天主要介绍针对在线服务的资源强稳定

一、FuxiMaster简介

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




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

1、 多租户管理

2、 支持FIFO/FAIR调度策略

3、针对在线服务保持资源强稳定(本文)

4、 支持NodeLabel动态划分集群

5、支持多机房调度

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

7、支持AllOrNothing调度

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

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

10、......

一、Fuxi的资源协议交互流程

正常场景分配资源

1、FuxiMaster分配资源后,会同时给作业(AM,下同)和机器节点(Tubo,下同)分配一个凭证: 给AM发送的叫做Hint, 告诉AM你可以在哪些机器上起分别起几份资源; 给Tubo发送的叫做Cap,告诉哪些AM在你这可以分别起几份资源;

2、AM收到FM的Hint后,会分别为每个slot准备启动的plan,然后发送给对应的tubo;

3、(Tubo收到FM的cap后,会等待AM发送plan,在收到plan之前不会有动作) or  (Tubo 收到AM的plan后,会等待FM发送cap, 在收到cap之前不会有动作)

4、当Tubo同时收到来自AM的Hint以及来自FM的Cap后,会在本地拉起worker


异常场景定义:

系统中存在FuxiMaster\Tubo\AM三个角色,根据timeout和failover的排列组合,总共有下述17种异常场景:

资源调度器:FuxiMaster, 作业管理器:AM, 机器节点:tubo



对于离线作业和在线服务,他们对于异常情况的容忍度是不一样的: 对于以SQL、MR为代表的离线作业,他们对于资源revoke并不明显,只要换一台机器重新跑就好了,影响只是运行时间会增加; 对于在线服务,可能重启一个worker都会造成故障,尤其是这种FuxiMaster未经AM同意、不给AM做准备的资源Revoke,对于在线服务是不能接受的。


我举两个例子来说明在线服务和离线作业在异常场景下的行为:

异常场景之一:FuxiMaster发生failover

由于FuxiMaster对调度结果不会做checkpoint,所以每次failover时,fuximaster的内存是空的,需要借助AM和tubo进行恢复:

1、FuxiMaster重启后,会在60s的时间内等待tubo和am向自己polling消息

2、tubo会将自己全量的cap发送给FuxiMaster, AM会将自己全量的Request和Hint发送给FuxiMaster

3、60s结束,FuxiMaster会根据AM的Request和tubo的cap做一个Recover动作,尝试恢复之前的调度结果;

    针对离线作业:如果有的tubo没有连上来,那么所有AM在这台机器上的资源FuxiMaster都会认为不可用, AM会收到资源回收的消息; 如果有的AM没有连上来,那么这个AM所有的资源FuxiMaster都会认为不存在(因为没有request),到下次AM连上来时,会收到所有资源被回收的消息
 
    针对在线服务:无论是tubo还是AM没有连上来,都不能主动回收我的资源;

这里需要特别指出的是,当FuxiMaster failover时,FM会同时收到tubo的cap和AM的hint,在正常逻辑下,是不看AM的hint的,因为AM是用户自己的逻辑,可能会误发、错发;而tubo只是转发FuxiMaster曾经发送给他的cap, 可信度是相对较高的

异常场景之二:Tubo发生Timeout

1、tubo和FuxiMaster之间存在心跳,表示两者都在正常工作;当FuxiMaster感知到tubo timeout时:

     针对离线作业: FuxiMaster会revoke AM在这台机器上的所有资源,并尝试分配新的资源

     针对在线服务: 不许回收我的资源,你可以将这台机器异常的情况告诉我,我自己来做判断是否还资源;


下面会针对17种异常场景来一一分析如何通过 Hint\Cap\Request来保证全异常场景下在线服务如何保持stable

二、异常场景下的在线服务资源稳定

1、FuxiMaster failover

 

FuxiMastr failover时,根据tubo的cap和AM的request来恢复资源


2、AM failover



AM failover时,会向FM汇报全量request, FM会向AM发送一个全量的hint来帮助AM完成failover


3、AM timeout



当AM timeout时,在超时时间内FuxiMaster不做动作;在超时时间外FuxiMaster会为AM找一台新的机器重新调度新的AM,并完成failover


4、tubo failover



当tubo failover时,他会向FuxiMaster请求一个全量的cap来完成自己的failover


5、tubo timeout



当tubo timeout时,FuxiMaster不会revoke在线服务的那部分cap,当tubo再次连回FuxiMaster时,FuxiMaster会将这部分stable的cap再次发送给tubo


6、AM failover && tubo failover


AM failover和tubo failover互不冲突,可以各自处理


7、AM failover && tubo timeout


AM failover和tubo timeout互不冲突,可以各自处理


8、AM timeout && tubo failover


AM timeout和tubo failover互不冲突,可以各自处理


9、AM timeout && tubo timeout



AM timeout和tubo timeout互不冲突,可以各自处理


10、FuxiMaster failover && AM failover

 

当FuxiMaster和AM failover时,FuxiMaster会等待重启的AM发送全量的request以及tubo发送全量的cap来恢复资源



11、FuxiMaster failover && AM timeout



当FuxiMaster failover期间AM没有连上来时,FuxiMaster这个时候只能收到tubo的cap,而没有AM的request; 此时,FuxiMaster会根据Tubo的cap来mock出对应的LT_CLUSTER Level的Request去recover这部分cap;当新的reschedule的AM连回来时,会将这部分mock的request转化成真正的request; 假设在AM连回来前tubo发生timeout,当作普通的tubo timeout来保证stable



12、FuxiMaster failover && tubo restart


当tubo重启时,tubo内存的中cap就丢失了;为了解决这个场景,tubo在每次收到FM的cap时都会本地做checkpoint


13、FuxiMaster failover && tubo timeout



在FuxiMaster failover期间tubo没有连上来,之前我们说过AM会向FuxiMaster发送全量的request和hint,但是FuxiMaster在tubo连上来的场景下只相信tubo的cap,而不相信hint;在这里AM发送的hint发挥了作用,我们通过AM的hint来恢复在没有连上来的tubo上面的cap,当tubo连回来时,就可以取走这部分cap


14、FuxiMaster failover && AM failover && tubo failover



在fuximaster failover期间,AM failover和tubo failover互不冲突,可以分别处理


15、FuxiMaster failover && AM failover && tubo timeout



由于AM failover会向FuxiMaster发送全量的request和全量的hint(全量的hint由在线服务自己做checkpoint),所以这个场景等价于FuxiMaster failover && tubo timeout


16、FuxiMaster failover && AM timeout && tubo failover


这个场景等价于FuxiMaster failover && AM timeout


17、FuxiMaster failover && AM timeout && tubotimeout


这个场景最为复杂,当AM先于tubo连回来时,可以参照AM的hint来恢复timeout tubo上面的cap; 当tubo先于AM连回来时,可以根据tubo的cap来mock request;


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

96e17df884ab556dc002c912fa736ef6558cbb51 
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7天前
|
人工智能 Cloud Native 数据管理
媒体声音|重磅升级,阿里云发布首个“Data+AI”驱动的一站式多模数据平台
在2024云栖大会上,阿里云瑶池数据库发布了首个一站式多模数据管理平台DMS:OneMeta+OneOps。该平台由Data+AI驱动,兼容40余种数据源,实现跨云数据库、数据仓库、数据湖的统一数据治理,帮助用户高效提取和分析元数据,提升业务决策效率10倍。DMS已服务超10万企业客户,降低数据管理成本高达90%。
|
3天前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
13 3
|
3天前
|
存储 大数据 OLAP
大数据数据分区技术
【10月更文挑战第26天】
18 2
|
6天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
32 1
|
8天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
41 2
|
9天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
39 1
|
9天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
75 3
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
206 65
|
6天前
|
人工智能 自然语言处理 搜索推荐
选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
25 0

相关产品

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