开启 Spark 查询采集插件

最近更新时间:2026-05-27 17:54:13

我的收藏
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.jar
spark.emr.analysis.uploadPath /data/emr/spark/logs/upload

Step3:验证 Spark 插件生效

在本地运行一个 spark-sql 执行任意查询,在集群服务 > SPARK > 查询管理中查看该本地查询是否存在。存在则代表 spark 插件生效。
# 本地运行spark-sql
spark-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.EMRAnalysisListener
spark.driver.extraClassPath /usr/local/service/spark/emr-plugins/1.0.0_sparkAnalysisListener.jar
spark.emr.analysis.uploadPath /data/emr/spark/logs/upload

注意事项

集群外 spark-submit,需要指定--deploy-mode cluster,让 driver 运行在集群,否则会报错找不到包。
集群外运行交互式 SQL,建议通过 kyuubi 提交到集群,直接跑 spark-sql 会因为 driver 固定在本地运行而报错找不到包。