鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

OmniRuntime OmniAdvisor

  • OmniAdvisor参数调优1.0版本仅仅使用AI调优算法,支持Spark和Hive组件的调优。
  • OmniAdvisor参数调优2.0版本在原有AI调优算法的基础上,新增了迁移调优算法、专家规则算法和算子加速算法,形成多维度优化体系,性能提升相较于OmniAdvisor1.0版本更高,同时可以做到用户无感调优,支持Spark组件的调优。
  • 如果使用场景满足2.0版本,建议优先选择2.0版本,不同版本支持的组件版本详见特性描述

OmniAdvisor参数调优2.0

Spark包含超过200个配置参数,这些参数间相互影响且取值范围广泛,使得手动调优变得复杂且耗时。传统方法通常因参数不全、效率低下及效果欠佳而受限。为解决这一难题,OmniRuntime OmniAdvisor参数调优2.0通过AI调优算法、专家规则调优算法和迁移泛化调优算法,辅以算子加速技术,实现自动参数优化和推荐,显著提高调优效率和效果。

OmniAdvisor参数调优2.0软件主要分为三部分:劫持优化组件、后台调优服务和历史数据库。其中,劫持优化组件可认为是Client端,后台调优服务可认为是Server端,而历史数据库负责存储软件过程中产生的数据。OmniAdvisor参数调优2.0软件的示意图如图1所示。

图1 OmniAdvisor参数调优2.0软件示意图

劫持优化组件的核心功能逻辑如下:

  1. 劫持租户任务请求,解析获得任务请求信息。
  2. 查询历史数据库,获得相应任务的最优配置。
  3. 将任务负载与最优配置,提交至Spark集群执行,并获得执行结果。
  4. 将执行结果记录到历史数据库中。
后台调优服务核心功能逻辑如下:
  1. 管理员指定任务负载,提交调优请求。
  2. 查询历史数据库,获取相关历史数据。
  3. 通过调优获得最优配置,并将其写入至历史数据库中。

OmniAdvisor参数调优2.0性能提升

与专家调优后的参数相比,OmniAdvisor参数调优2.0在TPC-DS 3TB数据集上的性能提升了约20%(图2中展示了部分具有代表性的SQL语句测试结果)。

图2 OmniAdvisor参数调优2.0性能提升

OmniAdvisor参数调优1.0

Spark引擎有200多个配置参数,许多参数具有广泛的取值范围,并且一些配置参数之间存在相互影响,这就导致Spark参数调优成为了困难问题。传统的Spark参数调优是采用手动调优方式,存在以下不足之处:可调优参数不完整、调优效率低、调优效果不佳。所以在大量可调参数的高维空间很难通过人工方式得到最优配置参数。Hive引擎亦存在类似的问题。OmniRuntime OmniAdvisor参数调优1.0旨在通过AI实现参数的自动推荐,从而提升调优效率和调优效果。

当前OmniAdvisor参数调优支持Spark SQL、Spark Application和Hive SQL的调优。

OmniAdvisor参数调优主要包含两个模块:

  • 日志解析模块。OmniAdvisor参数调优从Spark History Server中获取Spark历史任务的运行数据或者从Timeline Server中获取Tez历史任务的运行数据,解析任务执行后的日志信息,并将解析得到的SQL参数信息、SQL执行状态、执行时间等信息存入到MySQL数据库中。
  • 参数调优模块。OmniAdvisor参数调优从数据库中获取历史参数进行模型训练,这个历史参数进行参数采样后的新参数执行任务,并将执行的结果进行解析,进而更新数据库中的信息。最后,当用户需要重新执行任务的时候,可以在数据库中查找历史任务的最佳参数作为该任务的执行参数。
图3 OmniAdvisor参数调优1.0软件示意图

OmniAdvisor参数调优1.0性能提升

与专家调优后的参数相比,OmniAdvisor参数调优1.0推荐的Spark任务参数性能提升在15%左右。

图4 OmniAdvisor参数调优1.0性能提升