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 
相关推荐
万米商云2 小时前
企业物资集采平台解决方案:跨地域、多仓库、百部门——大型企业如何用一套系统管好百万级物资?
大数据·运维·人工智能
BigData共享2 小时前
极致性能背后的黑科技?这个世上没有“银弹”!(三)
大数据
阿里云大数据AI技术2 小时前
Flink Forward Asia 2025 主旨演讲精彩回顾
大数据·人工智能·flink
y_y_liang2 小时前
图生生AI商品换背景,高效商拍!
大数据·人工智能·ai·ai作画
He.ZaoCha2 小时前
函数-1-字符串函数
数据库·sql·mysql
王小王-1232 小时前
基于Hadoop的用户购物行为可视化分析系统设计与实现
大数据·hadoop·分布式·用户购物行为·电商日志分析
沐尘而生2 小时前
【AI智能体】智能音视频-硬件设备基于 WebSocket 实现语音交互
大数据·人工智能·websocket·机器学习·ai作画·音视频·娱乐
贝格前端工场3 小时前
小程序订阅消息设计:用户触达与隐私保护的平衡法则
大数据·小程序
成都极云科技4 小时前
成都算力租赁新趋势:H20 八卡服务器如何重塑 AI 产业格局?
大数据·服务器·人工智能·云计算·gpu算力
典学长编程5 小时前
高效学习之一篇搞定分布式管理系统Git !
大数据·git·搜索引擎