MLSQL 1.3.0开发版中最新三个MPIPs--调度,资源,缓存

栏目: 数据库 · 发布时间: 5年前

内容简介:MPIP 是新Feature提案。全称 MLSQL Project Improvement Proposals 。当然这个是学习Spark 的 SPIP,作为一个较为稳定成熟的项目,后续增加较大的功能特性会比较慎重,所以需要通过Improvement Proposals的方式来进行规范化,以后也方便回顾。在MLSQL 1.3.0 开发版中,我们根据实际场景需求,提出了三个MPIPs:其中,1,3已经完成了部分功能,并且合并进了TRY分支。大家可以通过比如名字MPIP-1031找到对应功能分支,看看开发的过程

什么是MPIP

MPIP 是新Feature提案。全称 MLSQL Project Improvement Proposals 。当然这个是学习Spark 的 SPIP,作为一个较为稳定成熟的项目,后续增加较大的功能特性会比较慎重,所以需要通过Improvement Proposals的方式来进行规范化,以后也方便回顾。

1.3.0开发版最新的三个MPIPs

在MLSQL 1.3.0 开发版中,我们根据实际场景需求,提出了三个MPIPs:

  1. MPIP-1031 表缓存功能
  2. MPIP-1045 内置定时任务
  3. MPIP-1047 资源动态调整

其中,1,3已经完成了部分功能,并且合并进了TRY分支。大家可以通过比如名字MPIP-1031找到对应功能分支,看看开发的过程。

MPIP-1031 表缓存功能

MLSQL社区开发的一位同学打趣的说,在批,流,机器学习三大块,MLSQL已经覆盖批常规99%的功能了,但其实还远远没达到。 Spark有一个很酷的功能,就是cache,允许你把计算结果分布式缓存起来,但存在需要手动释放的问题。MLSQL认为要解决这个问题,需要将缓存的生命周期进行划分:

  1. script
  2. session
  3. application

默认缓存的生命周期是script。随着业务复杂度提高,一个脚本其实会比较复杂,在脚本中我们存在反复使用原始表或者中间表临时表的情况,这个时候我们可以通过cache实现原始表被缓存,中间表只需计算一次,然后脚本一旦执行完毕,就会自动释放。使用方式也极度简单:

select 1 as a as table1;
!cache table1 script;
select * from table1 as output;

session级别暂时还没有实现。applicaton级别则是和MLSQL Engine的生命周期保持一致。需要手动释放:

!uncache table1;

表缓存功能极大的方便了用户使用cache。对于内存无法放下的数据,系统会自动将多出来的部分缓存到磁盘。

MPIP-1045 内置定时任务

内置定时任务是完善MLSQL Stack的一个重要环节。为用户提供一个更完整的服务。我们依然让这个工作MLSQL Style, 使用方式简单,比如:

!crontab */5 * * * * self;

---you script content

select * from hive1 as hiveTable2;
save......

我们也期待未来能够加上脚本依赖的支持。

MPIP-1047 资源动态调整

当你在实际的生产环境使用MLSQL Stack之后,大量的MLSQL Engine会因为各种场景被部署: 有共分析师,业务探索使用的,有供作为API使用的,有做ETL引擎使用的,有做流使用的,有做机器学习平台使用的,这对服务提供方带来了大量的资源压力。比如业务探索类的,典型的上班时间资源需求大,下班时间基本上没怎么有人用,ETL则是反之,API也有一定方位。而且业务探索类的其实对响应有一定的实时需求,比如一个复杂的脚本使用者期待10s内返回,如果使用Spark 的DRA反复的资源释放和申请,可能临时申请资源的时间就已经超过10s,更不用提计算了。 这个时候我们更希望的是通过统计分析,自己制定一个资源调整策略,从而节省系统资源,减轻压力。MLSQL 为此提出这个MPIP,管理员只要通过简单的两个三个命令就可以添加或者删除CPU/内存资源。

!resource add 10c;
!resource remove 10c;
!resource set 40c;

第一个表示给当前正在运行的MLSQL Engine添加10个核,第二个表示减少10核,第三个则表示将当前的MLSQL Engine的资源设置为40核。

那么内存呢?内存会根据启动时配置的CPU和内存的比例,进行相应的增加或者删减。比如我们启动时,CPU和内存为1:4,那么我们添加10c,相应的,系统会自动增加40G的内存。

有了这个功能后,我们完全可以开发一个资源控制策略,对于探索类应用,每天上班时,自动增加资源,下班时剔除资源,用户也可以主动向管理员临时申请更多资源,实现真正的弹性,整个过程无需重启。

总结

MLSQL 会越来越多的考虑用户场景来提供更多功能。


以上所述就是小编给大家介绍的《MLSQL 1.3.0开发版中最新三个MPIPs--调度,资源,缓存》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

参与的胜利

参与的胜利

亨利·詹金斯 / 高芳芳 / 浙江大学出版社 / 2017-9-30 / CNY 42.00

《参与的胜利:网络时代的参与文化》是一场学者之间的对话,三位学者(亨利·詹金斯、伊藤瑞子和丹娜·博伊德)虽然来自不同的代际、不同的学科背景,但他们在相同的参与文化项目中展开合作,并试图解决相似的问题。 希望《参与的胜利:网络时代的参与文化》能够进一步激发团体内部及团体之间的对话,这些团体包括教育者、政策制定者、学者、关注参与文化的公民、业内人士、粉丝及其他任何关心我们文化的未来的人。理想的参......一起来看看 《参与的胜利》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具