Spark 控制台查询管理及洞察等相关功能需要用户集群开启 Spark 的查询采集插件,面向采集到相关的查询信息进行多维度分析和预设策略及 AI 洞察调优。
EMR on CVM Spark3 场景采集查询
Step1:检查 Spark 插件是否已经部署
1. 登录 Spark 提交机,详情请参见 使用 OrcaTerm 方式登录 Linux 实例(推荐)。
2. 查看插件是否存在,注意插件只对 Spark3 生效(Spark 版本需>=3.1.0)。
# 对于spark3.x版本,如下文件存在即是已经安装ls /usr/local/service/spark/emr-plugins/*sparkAnalysisListener*
Step2:修改 Spark 配置
从控制台对 Spark 配置 spark-defaults.conf 添加如下配置并下发:
spark.extraListeners org.apache.spark.emr.EMRAnalysisListener# 具体包名参考Step1目录下的包名spark.driver.extraClassPath /usr/local/service/spark/emr-plugins/1.0.0_sparkAnalysisListener.jarspark.emr.analysis.uploadPath /data/emr/spark/logs/upload
Step3:验证 Spark 插件生效
在本地运行一个 spark-sql 执行任意查询,在集群服务 > SPARK > 查询管理中查看该本地查询是否存在。存在则代表 spark 插件生效。
# 本地运行spark-sqlspark-sql --master local
# 执行任意查询select * from your_table;
EMR on TKE Spark3 场景采集查询
说明:
仅在 EMR-TKE-V1.1.0 及以后版本支持。
Kyuubi 提交 Spark
1. 登录将要连接的 KyuubiServer Pod,并检查插件是否存在。
# 对于spark3.x版本,如下文件存在即是已经安装ls /usr/local/service/spark/emr-plugins/*sparkAnalysisListener*
2. 在控制台 kyuubi-defaults 中添加配置并下发生效,注意 EMR on TKE 不用添加 spark.emr.analysis.uploadPath。
spark.extraListeners org.apache.spark.emr.EMRAnalysisListener# 具体包名参考目录下的包名spark.driver.extraClassPath /usr/local/service/spark/emr-plugins/1.0.0_sparkAnalysisListener.jar
Hive on Spark
1. 登录将要连接的 HiveServer2 Pod,并检查插件是否存在。
# 对于spark3.x版本,如下文件存在即是已经安装ls /usr/local/service/hive/spark/emr-plugins/*sparkAnalysisListener*
2. 在控制台 hive-site.xml 中添加配置并下发生效,注意 EMR on TKE 不用添加 spark.emr.analysis.uploadPath。
hive.execution.engine spark;spark.extraListeners org.apache.spark.emr.EMRAnalysisListener;spark.driver.extraClassPath /usr/local/service/hive/spark/emr-plugins/1.0.0_sparkAnalysisListener.jar;
Spark
1. 同 EMR on CVM,先登录 Spark 提交机确认插件存在。
# 对于spark3.x版本,如下文件存在即是已经安装ls /usr/local/service/spark/emr-plugins/*sparkAnalysisListener*
2. 在控制台 spark-defaults.conf 中添加配置并下发生效。
spark.extraListeners org.apache.spark.emr.EMRAnalysisListener# 具体包名参考Step1目录下的包名spark.driver.extraClassPath /usr/local/service/spark/emr-plugins/1.0.0_sparkAnalysisListener.jar
外部提交到 EMR on CVM 集群
提交机非 EMR 集群节点,如 Wedata,DolphinScheduler 等提交到 EMR 集群。
修改 EMR 集群和外部提交机 Spark 配置
从控制台对 Spark 配置 spark-defaults.conf 添加如下配置并下发,控制台下发配置的目的是让集群节点的采集程序能获得 analysis.uploadPath 路径,同时保持集群内外行为一致。
外部提交机也需要添加下方配置:
spark.extraListeners org.apache.spark.emr.EMRAnalysisListenerspark.driver.extraClassPath /usr/local/service/spark/emr-plugins/1.0.0_sparkAnalysisListener.jarspark.emr.analysis.uploadPath /data/emr/spark/logs/upload
注意事项
集群外 spark-submit,需要指定--deploy-mode cluster,让 driver 运行在集群,否则会报错找不到包。
集群外运行交互式 SQL,建议通过 kyuubi 提交到集群,直接跑 spark-sql 会因为 driver 固定在本地运行而报错找不到包。