Spark-SQL任务提交方式

Spark-SQL在一定程度上可以代替Hive,但一般依赖Hive的元数据,即Metastore。Spark-SQL的交互式模式可以运行bin/spark-sql进入,按照类似hive方式写SQL代码。

Spark 通过 Thrift RPC 向 Hive Metastore Service(HMS) 发请求,HMS 再去访问 MySQL 里的元数据,这种方式可以让Hive、Spark、Presto、Impala 等多种引擎共享同一套元数据,此时需要启动Hive元数据服务HMS:

shell 复制代码
hive --service metastore

使用Hive元数据时,需要将hive的配置文件hive-site.xml放到$SPARK_HOME/conf目录下或者提交作业时用--files参数指定该配置文件。配置文件内容如下:

xml 复制代码
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://metastore-host:9083</value>
</property>

Spark SQL脚本任务使用spark-sql提交任务时,和Spark传统任务类似,可使用本地、Standalone、Yarn和K8S资源调度平台。提交方式如下:

shell 复制代码
# 任务提交方式:交互模式
spark-sql # 进入 Spark SQL CLI,可以直接写 SQL 语句交互式运行,本地模式
spark-sql --master local[*] # 同上
spark-sql --master yarn --deploy-mode cluster # 提交的语句在YARN集群执行
spark-sql --master k8s://https://<k8s-apiserver>:6443 \
  --conf spark.kubernetes.container.image=my-spark-image:latest \
  --deploy-mode cluster # Driver和Executor都在K8S的Pod中,client时Driver在本地

# 任务提交:指定脚本文件
spark-sql -f my.sql --conf spark.executor.memory=4g --conf spark.executor.cores=2
spark-sql --master local[*] -f my.sql # 本地模式提交脚本任务
# Standalone模式,master参数为Spark Master的RPC地址,资源分配由Master控制
spark-sql --master spark://<master>:7077 --deploy-mode client -f my.sql
# Yarn模式,client为Driver在提交节点上运行,日志直接可见,cluster为Driver在Yarn Container中运行
spark-sql --master yarn --deploy-mode cluster \
  --executor-memory 4g \
  --executor-cores 2 \
  --num-executors 20 \
  -f my.sql
相关推荐
菜鸡儿齐6 小时前
spark组件-spark sql-读取数据
大数据·sql·spark
网络安全-海哥8 小时前
Web安全深度实战:从漏洞原理到防护方案
sql·web安全·网络安全·xss·csrf·漏洞挖掘·安全防护
呆呆小金人20 小时前
SQL入门:正则表达式-高效文本匹配全攻略
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
默默coding的程序猿1 天前
1.北京三维天地公司-实施实习生
java·sql·技术支持·面经·实施·实施工程师·三维天地
GitCode官方1 天前
科大讯飞星火科技文献大模型 Spark-Scilit-X1-13B 在 GitCode 开源,助力科研智能化革新!
科技·spark·gitcode
EndingCoder1 天前
Node.js SQL数据库:MySQL/PostgreSQL集成
javascript·数据库·sql·mysql·postgresql·node.js
码出钞能力1 天前
如何屏蔽GORM个别sql的日志
数据库·sql·gorm
TDengine (老段)1 天前
TDengine 数字函数 RADIANS 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
想ai抽1 天前
大数据计算引擎-从源码看Spark AQE对于倾斜的处理
大数据·数据仓库·spark
呆呆小金人1 天前
SQL入门:别名使用完全指南
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师