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 
相关推荐
w-w0w-w21 分钟前
SQL注入
网络·数据库·sql
天河归来38 分钟前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
GlobalInfo2 小时前
2026年全球机器人用超平执行器市场研究报告:市场规模达7.51亿美元,人形机器人商业化与轻量化运动控制需求推动行业增长
大数据·人工智能·数码相机·microsoft·机器人
宇宙无敌暴龙战士6663 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
IT古董4 小时前
《Agent开发工程师成长指南》- 第4章 第2节:Prompt设计五要素——任务、角色、上下文、约束与输出格式
大数据·人工智能·prompt
Allen_LVyingbo5 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
全栈陈序员6 小时前
【Git】从入门到精通(一)—— Git简介:什么是版本控制系统
大数据·git·elasticsearch
中国搜索直付通7 小时前
分账系统有风险吗?资金安全怎么保障?
大数据·支付通道·分账系统·分账支付
一枕槐安4877 小时前
微调 vs Prompt:业务场景下两种方案成本 & 效果对比
大数据·人工智能·prompt·混合架构·推理成本·行为固化·知识边界
SelectDB7 小时前
Apache Doris 与 SelectDB 是什么关系?从开源技术到面向 Agent 的极速分析数据库
大数据·数据库·数据分析