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

免费开通大数据服务: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;

阅读原文请点击

时间: 2024-10-24 16:20:07

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

阿里云移动端播放器高级功能---视频下载

基本介绍优酷.爱奇艺.腾讯等主流的视频类App都有视频离线下载的功能,主要目的是在wifi下将视频离线在本地,然后在无网或者4G的情况下去观看离线视频.那么阿里云播放器也提供了视频下载的功能.这个功能主要针对的是点播视频,也就是vid播放的视频的下载. 主要问题m3u8如何下载?我们知道m3u8是一个索引文件,真正的视频文件是各个ts的分片,那么如何下载成一个完成的视频呢?如何对视频下载进行多线程控制?在一些app中,多个视频同时下载被认为是高级VIP才有的功能.如何实现断点续传?当在下载过程中

大数据技术之_29_MySQL 高級面试重点串讲_02_Mysql 简介+Linux 版的安装+逻辑架构介绍+性能优化+性能分析+查询截取分析+分区分库分表简介+锁机制+主从复制

第1章 Mysql 简介1.1 概述1.2 高级 MySQL第2章 Mysql Linux 版的安装2.1 下载地址2.2 检查当前系统是否安装过 mysql2.3 修改 Mysql 配置文件位置2.4 修改字符集和数据存储路径2.5 MySQL 的安装位置说明2.6 Mysql 配置文件说明2.7 Mysql 的数据存放目录第3章 Mysql 逻辑架构介绍3.1 总体概览3.2 查询说明第4章 Mysql 性能优化4.1 影响 mysql 的性能因素4.2 查询与索引优化分析4.2.1 性能下

阿里云移动端播放器高级功能---画面控制

基本介绍经常遇到一些开发者问:1.我们播放的时候,会有黑边怎么处理?尤其是在类似于抖音,直播这样的场景下,如果视频有黑边,很影响画面的视觉效果.而阿里云播放器提供了缩放功能,用来去除黑边,达到视频全屏的效果.2.直播时摄像头采集经常会遇到反向的问题,就是采集出来的视频画面中的字是反的,对于这种情况怎么处理呢?阿里云播放器提供了镜像的功能,可以水平和垂直镜像,让画面变成你想要的样子.3.对一些横屏拍摄的视频同时我们提供了旋转功能,可以选择90.270度,旋转之后就可以实现全屏渲染了. 渲染模式设置

阿里云移动端播放器高级功能---截图和音频波形

基本介绍如果用户对视频播放中的某一帧画面特别感兴趣,可以使用截图功能将这一帧视频保存起来.另外有一种场景想知道是否有声音,或者想感知声音的大小震动频率等,可以通过显示一个声音的波形来形象的表示.如下图所示:那么播放器提供了类似的方法可以让用户有办法去实现音频波形这个功能.那么这种通常在音乐播放器中比较常见,或者在直播场景中来标识对方讲话是否有声音等,有一定的应用场景. 视频截图实现接口iOS接口如下: /** 功能:截取当前正在播放图像 /-(UIImage) snapshot;Android接

大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录

一.背景介绍 最近几天,接到公司的一个将当前大数据平台数据全部迁移到阿里云ODPS平台上的任务.而申请的这个ODPS平台是属于政务内网的,因考虑到安全问题当前的大数据平台与阿里云ODPS的网络是不通的,所以不能使用数据采集工作流模板. 然而,考虑到原大数据平台数据量并不是很大,可以通过将原大数据平台数据导出到CSV文件,然后再将CSV文件导入到ODPS平台.在这个过程中踩的坑有点多,所以想写篇文档作为记录. 二.大数据平台Hive数据导出到本地 编写export_data.sh脚本如下: #!/

【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践

本文来自腾讯云技术沙龙,本次沙龙主题为构建PB级云端数仓实践 在现代社会中,随着4G和光纤网络的普及.智能终端更清晰的摄像头和更灵敏的传感器.物联网设备入网等等而产生的数据,导致了PB级储存的需求加大. 但数据保留下来并不代表它真的具有利用价值,曾经保存的几TB的日志,要么用来做做最简单的加减乘除统计,要么就在日后出现问题了,扒出日志堆找证据.你的影视库里面可以下载储存成千上万部影片,但不代表你真的能全部看完. 如何将手里现有的数据变得更具有价值?一些营销云已经可以做到毫秒级响应做到精准投放广告

大数据技术人年度盛事! BDTC 2016将于12月8-10日在京举行

2016年12月8日-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所和CSDN共同协办的2016中国大数据技术大会(Big Data Technology Conference 2015,BDTC 2016)将在北京新云南皇冠假日酒店隆重举办. 图片描述 中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(Hadoop in China,HiC).从2008年仅60余人参加的技术沙龙到当下数千人的技术盛宴,目前已成为国内最具影响力.规模

除Hadoop大数据技术外,还需了解的九大技术

除Hadoop外的9个大数据技术: 1.Apache Flink 2.Apache Samza 3.Google Cloud Data Flow 4.StreamSets 5.Tensor Flow 6.Apache NiFi 7.Druid 8.LinkedIn WhereHows 9.Microsoft Cognitive Services Hadoop是大数据领域最流行的技术,但并非唯一.还有很多其他技术可用于解决大数据问题.除了Apache Hadoop外,另外9个大数据技术也是必须要了

2019年大数据技术应用发展趋势

2019年大 当前最火热的新兴科技莫过于人工智能,而国内的大数据公司也纷纷转战AI战场.某种程度上,大数据已不再是科技界的话题宠儿.在Gartner的Hype Cycle中,大数据技术也已经进入到了Plateau of Productivity的商业化应用阶段. ? 任何新兴科技总会经历创新萌芽到期望幻灭的周期,这并不奇怪.就2018年行业应用现状来看,大数据正逐步成为企业的标准化应用技术:从早期尝试搭建分布式集群.到数据采集汇总.到数据加工与开发.再到大数据的应用场景落地,企业数据架构已经全面