一、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 固定在本地运行而报错找不到包。