推荐任务匹配失败的解决方法

问题信息

表1 问题的基本信息

信息名称

信息内容

问题来源

网上维护

产品大类

鲲鹏BoostKit

产品子类

大数据

业务场景

调试运行

组件分类

其他

输出时间

2023-01-29

案例作者

马晓琦

所属团队

鲲鹏BoostKit

评审结果

评审通过

评审时间

2024-01-30

发布时间

2024-03-30

关键字

任务执行时,推荐任务的最佳参数失败

归属文档

OmniAdvisor 特性指南

问题现象描述

进行SQL任务推荐时,提交任务的query语句和解析得到的query语句不完全一致,或者提交任务的JAR包和解析得到的JAR包不完全一致时,会导致任务标识的Hash值计算有问题,因此任务执行时推荐最佳参数会失败,报错信息如下。

ERROR - 'NoneType' object has no attribute 'parameters'

关键过程、根本原因分析

结论、解决方案及效果

可以修改参数调优“$OMNIADVISOR_HOME/BoostKit-omniadvisor_1.1.0/config/common_config.cfg”文件配置项中的identification_type,可满足基本要求。

  1. 打开配置文件。

    1
    vi $OMNIADVISOR_HOME/BoostKit-omniadvisor_1.1.0/config/common_config.cfg
    

  2. 将配置项“identification_type”修改为“application_name”

    1
    2
    3
    # 需要指定任务运行的唯一标识,可以通过匹配任务的名称(application_name)的hash值或者匹配任务的hash值(对应query的hash或者对应jar包的hash)来匹配查找数据库中该任务的最佳参数
    # options: [application_name, job_hash]
    identification_type = application_name
    

  3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 重新进行该任务的日志解析,并重新开始参数调优步骤。