一、Step1:检查 Spark 调优插件是否已经部署
1. 登录 Spark 提交机器。
2. 查看插件是否存在。
ls /usr/local/service/spark/emr-plugins/*spark-conf-tuner*
二、Step2:检查 Spark 采集插件是否已经部署
调优插件依赖于采集插件采集运行数据。详情请参见 开启 Spark 查询采集插件。
1. 登录 Spark 提交机器。
2. 查看插件是否存在。
ls /usr/local/service/spark/emr-plugins/*sparkAnalysisListener*
三、Step3:修改 Spark 配置
从控制台对 Spark 配置 spark-env.sh 添加如下配置并下发:
SPARK_SUBMIT_OPTS "${SPARK_SUBMIT_OPTS:+$SPARK_SUBMIT_OPTS }-javaagent:/usr/local/service/spark/emr-plugins/1.0.0_spark-conf-tuner.jar"
四、Step4:联系后台开启客户前端白名单(内部开白)
可通过 提交工单 申请开启 Spark 优化策略白名单。
五、Step5:配置任务指纹策略
Spark 调优插件依赖于任务指纹识别同一个周期任务,针对于任务指纹的生成有两种方式:
1. 自定义任务指纹和任务指纹名称,需要在提交参数中添加以下参数:
–conf spark.emr.tuning.agent.fp_id={Task_fp_id}–conf spark.emr.tuning.agent.fp_name={Task_fp_id_name}
2. 联系后台添加任务指纹计算脚本,根据任务特征自动生成任务指纹,则无需添加任务指纹相关配置。
添加成功后,在 控制台>配置中心>调优自治策略>调参调优 可以看见任务指纹添加成功。
六、Step6:执行 SparkSQL 任务
Spark 调优插件开启调优:
–conf spark.emr.tuning.agent.mode=app
自定义任务指纹模式-提交示例:
spark-sql \\–master=yarn \\–deploy-mode=client \\–conf spark.app.name=app-test \\–conf spark.emr.tuning.agent.mode=app \\ 调优插件开启参数–conf spark.emr.tuning.agent.fp_id=fp_id_test \\ 自定义任务指纹–conf spark.emr.tuning.agent.fp_name=fp_name_test \\ 自定义任务指纹名称–conf spark.executor.memory=4g \\–conf spark.executor.instances=2 \\–conf spark.executor.cores=2 \\-f test.sql
任务指纹脚本计算模式-提交示例:
spark-sql \\–master=yarn \\–deploy-mode=client \\–conf spark.app.name=app-test \\–conf spark.emr.tuning.agent.mode=app \\ 调优插件开启参数–conf spark.executor.memory=4g \\–conf spark.executor.instances=2 \\–conf spark.executor.cores=2 \\-f test.sql
七、Step7:验证 Spark 调优插件生效
检查路径:控制台 > 治理中心 > 调优任务记录 中查看该任务记录是否存在,存在则代表调优插件生效。
注意:说明:
注意:调优插件实现任务调优需要参考历史运行记录,在控制台 > 配置中心 > 调优规则中,可以查看或者配置相应队列的参考周期,对于首次配置的调优任务,运行次数需要大于配置的参考周期才会开始调优。