约束与限制
- 当前只支持对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;”等语句。
引擎 |
任务提交场景 |
说明 |
---|---|---|
Spark |
spark-sql client模式单SQL任务 |
- |
spark-sql client模式多SQL任务 |
多SQL指该任务中,单个session中执行了多条SQL语句。 |
|
spark-submit application(jar) client模式任务 |
当前仅支持打包成JAR的App任务解析。 |
|
spark-submit application(jar) cluster模式任务 |
当前仅支持打包成JAR的App任务解析。 |
|
Hive |
Hive单SQL任务 |
- |
Hive多SQL任务 |
多SQL指该任务中,单个session中执行了多条SQL语句。 |
父主题: 特性介绍