弹性 MapReduce 开启 Spark 优化插件

SparkSQL 优化主要针对于周期性执行的 SparkSQL 任务,根据其历史运行特征,动态优化资源使用量。

相关产品
弹性 MapReduce 产品页,含版本规格、价格与购买入口。

一、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 调优插件生效

检查路径:控制台 > 治理中心 > 调优任务记录 中查看该任务记录是否存在,存在则代表调优插件生效。

注意:说明:

注意:调优插件实现任务调优需要参考历史运行记录,在控制台 > 配置中心 > 调优规则中,可以查看或者配置相应队列的参考周期,对于首次配置的调优任务,运行次数需要大于配置的参考周期才会开始调优。

赞 (0)
上一篇 4天前
下一篇 4天前