spark-sql on yarn 、spark-shell on yarn 详解

本文介绍如何在Yarn环境下运行SparkShell和SparkSQL命令行,包括配置步骤及注意事项,使开发者能在Yarn集群中进行高效开发与测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字:spark-shell on yarn、spark-sql on yarn

前面的文章《Spark On Yarn:提交Spark应用程序到Yarn》介绍了将Spark应用程序提交到Yarn上运行。有时候在做开发测试的时候,需要使用spark-shell和spark-sql命令行,除了Local和Spark standalone模式,spark-shell和spark-sql也可以运行在yarn上,这里就简单介绍一下使用方法。

spark-shell On Yarn

如果你已经有一个正常运行的Hadoop Yarn环境,那么只需要下载相应版本的Spark,解压之后做为Spark客户端即可。

需要配置Yarn的配置文件目录,export HADOOP_CONF_DIR=/etc/hadoop/conf   这个可以配置在spark-env.sh中。

运行命令:

  
  1. cd $SPARK_HOME/bin
  2. ./spark-shell \
  3. --master yarn-client \
  4. --executor-memory 1G \
  5. --num-executors 10

注意,这里的–master必须使用yarn-client模式,如果指定yarn-cluster,则会报错:

Error: Cluster deploy mode is not applicable to Spark shells.

因为spark-shell作为一个与用户交互的命令行,必须将Driver运行在本地,而不是yarn上。

其中的参数与提交Spark应用程序到yarn上用法一样。

启动之后,在命令行看上去和standalone模式下的无异:

spark-shell on yarn

在ResourceManager的WEB页面上,看到了该应用程序(spark-shell是被当做一个长服务的应用程序运行在yarn上):

spark-shell on yarn

点击ApplicationMaster的UI,进入到了Spark应用程序监控的WEB页面:

spark-shell on yarn

 

spark-sql On Yarn

spark-sql命令行运行在yarn上,原理和spark-shell on yarn一样。只不过需要将Hive使用的相关包都加到Spark环境变量。

1. 将hive-site.xml拷贝到$SPARK_HOME/conf

2.export HIVE_HOME=/usr/local/apache-hive-0.13.1-bin 添加到spark-env.sh

3.将以下jar包添加到Spark环境变量:

datanucleus-api-jdo-3.2.6.jar、datanucleus-core-3.2.10.jar、datanucleus-rdbms-3.2.9.jar、mysql-connector-java-5.1.15-bin.jar

可以在spark-env.sh中直接添加到SPARK_CLASSPATH变量中。

 

运行命令:

  
  1. cd $SPARK_HOME/bin
  2. ./spark-sql \
  3. --master yarn-client \
  4. --executor-memory 1G \
  5. --num-executors 10

即可在yarn上运行spark-sql命令行。
spark-sql on yarn

在ResourceManager上的显示以及点击ApplicationMaster进去Spark的WEB UI,与spark-shell无异。

spark-sql on yarn

 

这样,只要之前有使用Hadoop Yarn,那么就不需要搭建standalone的Spark集群,也能发挥Spark的强大威力了。

 

参考资料

Spark Dataset DataFrame原理方法示例源码分析

Spark SparkSession由来方法示例源码分析

Spark RDD由来原理方法示例源码详解

Spark SparkContext原理用法示例源码详解

Spark SQL示例用法所有函数权威详解

SparkSQL性能调优官网权威资料

spark dataset/DataFrame比RDD好在哪些地方?

Spark YARN Cluster和Client两种不同提交模式区别

spark RDD 概述用法官网权威资料(建议收藏)

Spark on k8s如何在Kubernetes运行官方权威资料

Spark性能权威调优指南

Spark提交任务官网权威指南详解(建议收藏)

Spark数据类型官网权威详解

Spark 集群模式概述

在YARN上启动Spark任务原理用法官方权威资料

spark SQL Implicits原理用法示例源码分析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值