前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MLSQL 1.3.0开发版中最新三个MPIPs--调度,资源,缓存

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

作者头像
用户2936994
发布2019-05-10 18:41:22
3620
发布2019-05-10 18:41:22
举报
文章被收录于专栏:祝威廉

什么是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实现原始表被缓存,中间表只需计算一次,然后脚本一旦执行完毕,就会自动释放。使用方式也极度简单:

代码语言:javascript
复制
select 1 as a as table1;
!cache table1 script;
select * from table1 as output;

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

代码语言:javascript
复制
!uncache table1;

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

MPIP-1045 内置定时任务

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

代码语言:javascript
复制
!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/内存资源。

代码语言:javascript
复制
!resource add 10c;
!resource remove 10c;
!resource set 40c;

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

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

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

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是MPIP
  • 1.3.0开发版最新的三个MPIPs
  • MPIP-1031 表缓存功能
  • MPIP-1045 内置定时任务
  • MPIP-1047 资源动态调整
  • 总结
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档