spark-sql sql on yarn --deploy-mode cluster 改造

前言

众所周知,spark-sql 不能提交到远端并且使用 cluster进行部署:

shell 复制代码
huangyichun@bigdata130023:~ # spark-sql --master yarn --deploy-mode cluster
Exception in thread "main" org.apache.spark.SparkException: Cluster deploy mode is not applicable to Spark SQL shell.
     at org.apache.spark.deploy.SparkSubmit.error(SparkSubmit.scala:972)
     at org.apache.spark.deploy.SparkSubmit.prepareSubmitEnvironment(SparkSubmit.scala:283)
     at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:898)
     at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
     at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
     at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
     at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
     at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
     at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

如果环境可以请使用 --deploy-mode client,如果有特殊需要请见下

这是由于spark-sql 提供了一种本地交互模式,让client端在交互模式中提供sql进行执行。但spark-sql 也有 -e-f 模式,提供用户一种 -e sqlString-f sqlFile 的方式运行,这两种方式并不需要交互模式。

所以对此本博客修改了spark-sql源码,删除了交互模式的退出判断,让spark-sql可以直接运行在 cluster中。并与源生一样,可以使用-e sqlString 以及-f sqlFile进行提交。

改造jar包获取

包可以直接下载这里(不需要积分,请好评),或者github查看源码更改spark版本

提供的包为 spark 3.2.2 版本,scala 2.12版本;与hadoop版本无关。

github地址: https://github.com/ChunChunWeb/spark-sql-for-cluster

运行方式

可以通过 shell 命令直接提交:

shell 复制代码
spark-submit --class org.apache.spark.sql.hive.cluster.SparkSqlCliClusterDriver  \
--master yarn \
--deploy-mode cluster \
my-spark-sql-cluster.jar 
相关推荐
大大大大晴天1 天前
Hudi技术内幕:Key Generation原理与实践
大数据
zzzzzz3101 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横3 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
得物技术4 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子4 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1235 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能5 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel5 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574095 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf