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--调度,资源,缓存》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

程序员的数学2

程序员的数学2

平冈和幸、堀玄 / 陈筱烟 / 人民邮电出版社 / 2015-8-1 / CNY 79.00

本书沿袭《程序员的数学》平易近人的风格,用通俗的语言和具体的图表深入讲解程序员必须掌握的各类概率统计知识,例证丰富,讲解明晰,且提供了大量扩展内容,引导读者进一步深入学习。 本书涉及随机变量、贝叶斯公式、离散值和连续值的概率分布、协方差矩阵、多元正态分布、估计与检验理论、伪随机数以及概率论的各类应用,适合程序设计人员与数学爱好者阅读,也可作为高中或大学非数学专业学生的概率论入门读物。一起来看看 《程序员的数学2》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具