OmniRuntime OmniAdvisor
Spark引擎有200多个配置参数,许多参数具有广泛的取值范围,并且一些配置参数之间存在相互影响,这就导致Spark参数调优成为了困难问题。传统的Spark参数调优是采用手动调优方式,存在以下不足之处:可调优参数不完整、调优效率低、调优效果不佳。所以在大量可调参数的高维空间很难通过人工方式得到最优配置参数。Hive引擎亦存在类似的问题。OmniRuntime OmniAdvisor参数调优旨在通过AI实现参数的自动推荐,从而提升调优效率和调优效果。
当前OmniAdvisor参数调优支持Spark SQL、Spark Application和Hive SQL的调优。
OmniAdvisor参数调优主要包含两个模块:
- 日志解析模块。OmniAdvisor参数调优从Spark History Server中获取Spark历史任务的运行数据或者从Timeline Server中获取Tez历史任务的运行数据,解析任务执行后的日志信息,并将解析得到的SQL参数信息、SQL执行状态、执行时间等信息存入到MySQL数据库中。
- 参数调优模块。OmniAdvisor参数调优从数据库中获取历史参数进行模型训练,这个历史参数进行参数采样后的新参数执行任务,并将执行的结果进行解析,进而更新数据库中的信息。最后,当用户需要重新执行任务的时候,可以在数据库中查找历史任务的最佳参数作为该任务的执行参数。
OmniAdvisor参数调优性能提升
相比专家调优后的参数,OmniAdvisor推荐的Spark任务参数性能提升在15%左右。
图1 OmniAdvisor参数调优性能提升

父主题: 方案特性