---
title: 约束与限制
description: "- 当前只支持对Spark、Hive on Tez引擎的任务日志解析，因此也只支持Spark、Hive on Tez引擎的端到端参数调优。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0504.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0504.html
indexId: a321ac55a43007ba59d8a277e711102759617b56e88fa3492cf776edea4316ad78
---
# 约束与限制

- 当前只支持对Spark、Hive on Tez引擎的任务日志解析，因此也只支持Spark、Hive on Tez引擎的端到端参数调优。
- OmniAdvisor参数调优当前支持调优Spark SQL和APP任务、Hive on Tez SQL任务。Spark和Hive提交任务的场景非常丰富，对Spark引擎OmniAdvisor参数调优支持spark-sql/spark-submit Jar APP场景，对Hive引擎OmniAdvisor参数调优支持SQL场景（不支持beeline提交方式调优）。详细支持的任务提交场景如  表1
所示。
- 解析Spark任务日志的时候，需要开启HistoryServer。解析Hive on Tez任务日志的时候，需要开启Yarn TimelineServer。
- 对Spark和Hive的SQL任务，任务日志里面关于SQL的信息不能做加密处理，否则解析不到SQL相关的信息，不能进行后续的采样调优。
- Spark、Hive on Tez引擎的参数列表可以在spark_config.xml或者hive_config.xml中配置，但是系统JVM和OS相关的参数暂不支持。
- 面向Hive调优，OmniAdvisor参数调优当前仅支持会触发DAG的复杂查询SQL的解析、采样和调优。对Hive on Tez，常见非简单操作，如涉及多个表的JOIN操作、GROUP BY、SORT BY、DISTINCT、UNION等操作或者复杂的窗口函数等会触发一个或多个DAG。而如相对简单的单表查询或不涉及大量计算的语句，如果可以直接通过一次MapReduce操作完成，则可能不会显式地被表达为复杂的DAG结构，比如“SELECT * FROM table WHERE column = 'value';”和“CREATE TABLE new_table AS SELECT * FROM existing_table LIMIT 1000;”等语句。


**表1 支持调优的任务提交场景**

| 引擎 | 任务提交场景 | 说明 |
| --- | --- | --- |
| Spark | spark\-sql client模式单SQL任务 | \- |
| Spark | spark\-sql client模式多SQL任务 | 多SQL指该任务中，单个session中执行了多条SQL语句。 |
| Spark | spark\-submit application(jar) client模式任务 | 当前仅支持打包成JAR的App任务解析。 |
| Spark | spark\-submit application(jar) cluster模式任务 | 当前仅支持打包成JAR的App任务解析。 |
| Hive | Hive单SQL任务 | \- |
| Hive | Hive多SQL任务 | 多SQL指该任务中，单个session中执行了多条SQL语句。 |
