调优前配置参考
调优Spark或Hive任务前需要按下列步骤确认或者修改OmniAdvisor参数调优相关的配置。
日志解析模块参数
日志解析模块配置文件中,配置了Spark HistoryServer的地址和端口、Yarn TimelineServer的地址和端口、Spark和Tez解析开关、日志解析任务线程数等,在参数调优前需要确认配置是否正确。
- 在管理节点中,打开日志解析模块配置文件“$OMNIADVISOR_HOME/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64/conf/omniAdvisorLogAnalyzer.properties”。
vi $OMNIADVISOR_HOME/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64/conf/omniAdvisorLogAnalyzer.properties
- 按“i”进入编辑模式,确认或修改以下配置。omniAdvisorLogAnalyzer.properties配置文件参数说明请参见omniAdvisorLogAnalyzer.properties。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# 日志解析并发进程数 log.analyzer.thread.count=3 # 数据库的Driver,目前只支持MySQL datasource.db.driver=com.mysql.cj.jdbc.Driver # 是否开启Spark的日志解析 spark.enable=true # Spark日志分析超时时间,单位:s,超过这个时间则该任务分析失败 spark.timeout.seconds=30 # 是否开启Tez的日志解析 tez.enable=true # timeline服务的URL tez.timeline.url=http://server1:8188 # timeline服务连接超时时间,单位:ms tez.timeline.timeout.ms=6000 # 安全模式下用于kerberos认证的用户,非安全模式环境可省略 kerberos.principal=principle # 安全模式下用于kerberos认证的keytab文件路径,非安全模式环境可省略 kerberos.keytab.file=/usr/principle.keytab
- 确认omniAdvisorLogAnalyzer.properties配置文件中是否开启Spark的日志解析。当需要进行Spark调优时,需要打开Spark日志解析开关。确认Spark日志解析配置。Spark日志解析支持rest和log两种模式Spark日志采集提供两种模式,分别为log模式以及rest模式,二者选其一即可。rest模式通过调用Spark的history server restAPI的方式获取要解析的日志文件,log模式为直接分析Spark的任务日志文件。
- 默认日志采集模式为rest模式,此时确认omniAdvisorLogAnalyzer.properties配置文件中的配置。
# 是否开启Spark的日志解析 spark.enable=true # Spark日志解析模式,目前支持rest和log两种 spark.eventLogs.mode=rest # Spark HistoryServer的URL spark.rest.url=http://server1:18080
- 可选:当需要采用log模式进行Spark日志采集时,需要修改omniAdvisorLogAnalyzer.properties配置文件中的配置。
1 2 3 4 5 6 7 8
# 是否开启Spark的日志解析 spark.enable=true # Spark日志解析模式,目前支持rest和log两种 spark.eventLogs.mode=log # Spark Eventlog在HDFS上的保存地址和目录,确保配置正确可以访问到Spark Eventlog日志。 spark.log.directory=hdfs://server1:9000/spark2-history # Spark日志文件的最大大小,超过该目录大小,则会跳过该日志的解析,单位:MB spark.log.maxSize.mb=500
- 默认日志采集模式为rest模式,此时确认omniAdvisorLogAnalyzer.properties配置文件中的配置。
- 确认omniAdvisorLogAnalyzer.properties配置文件中是否开启Tez的日志解析。当需要进行Hive任务调优时,需要打开Tez日志解析开关。
1 2 3 4 5 6
# 是否开启Tez的日志解析 tez.enable=true # timeline服务的URL tez.timeline.url=http://server1:8188 # timeline服务连接超时时间,单位:ms tez.timeline.timeout.ms=6000
tez.timeline.url为Yarn timelineserver服务的URL,需要修改为实际的地址和端口,确保可以访问到timelineserver。
- 可选:安全模式下需要在omniAdvisorLogAnalyzer.properties配置文件新增中Kerberos中的配置。
1 2 3 4
# 安全模式下用于Kerberos认证的用户,非安全模式环境可省略 kerberos.principal=principle # 安全模式下用于Kerberos认证的keytab文件路径,非安全模式环境可省略 kerberos.keytab.file=/usr/principle.keytab
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 将Hadoop的配置文件hdfs-site.xml以及core-site.xml复制到“$OMNIADVISOR_HOME/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64/conf”目录下
cp ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml $OMNIADVISOR_HOME/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64/conf cp ${HADOOP_HOME}/etc/hadoop/core-site.xml $OMNIADVISOR_HOME/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64/conf
参数调优基本配置
参数调优“$OMNIADVISOR_HOME/BoostKit-omniadvisor_1.1.0/config/common_config.cfg”文件配置项中数据库配置和标识计算方法需要确认或修改。
- 打开“$OMNIADVISOR_HOME/BoostKit-omniadvisor_1.1.0/config/common_config.cfg”文件配置项。common_config.cfg配置文件参数说明请参见common_config.cfg。
vi $OMNIADVISOR_HOME/BoostKit-omniadvisor_1.1.0/config/common_config.cfg
- 按“i”进入编辑模式,修改MySQL相关配置。
1 2 3 4 5
[database] # MySQL数据库相关的用户名,端口号等信息 db_name = test_advisor db_host = localhost db_port = 3306
- 确认workload模块中的workload_name数据库名称、日志解析模块路径和identification_type任务运行的唯一标识(默认为job_hash)。
1 2 3 4 5 6 7 8
[workload] # 测试执行的数据库名称 workload_name = tpcds_bin_partitioned_decimal_orc_100 # 日志解析模块解压存放的路径,该路径下需要有解析日志的JAR包 log_analyzer_path = /opt/OmniAdvisor/boostkit-omniadvisor-log-analyzer-1.1.0-aarch64 # 需要指定任务运行的唯一标识,可以通过匹配任务的名称(application_name)的Hash值或者匹配任务的Hash值(对应query的Hash或者对应JAR包的Hash)来匹配查找数据库中该任务的最佳参数 # options: [application_name, job_hash] identification_type = job_hash
- 当选择application_name时,则以任务的application_name的hash值作为任务的标识符identification。
- 当选择job_hash时,则以任务的SQL语句(SQL任务)或者JAR包(APP任务)的Hash值作为任务的标识符identification。
- 日志解析过程中会根据identification_type的配置用不同的方法计算identification标识,并将该值存储到数据库中,后续参数推荐时根据identification去进行匹配推荐最优参数。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
父主题: 使用特性