Spark系列之SparkSubmit提交任务到YARN


title: Spark系列


第十三章 SparkSubmit提交任务到YARN

13.1 SparkSubmit提交的一些参数解释

local 本地单线程
local[K] 本地多线程(指定K个内核)
local[*] 本地多线程(指定所有可用内核)
spark://HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。
mesos://HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。
yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。
yarn-cluster集群模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR。

13.2 提交任务到本地运行

本地模式,不启动spark集群也能运行。

$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[4] \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.2.jar \
10

实际可运行命令:

/software/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[4] \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
/software/spark/examples/jars/spark-examples_2.12-3.1.2.jar \
10

运行截图:

Spark系列之SparkSubmit提交任务到YARN_第1张图片

结果截图:

在这里插入图片描述

13.3 提交任务到Spark集群运行

需要启动Spark的StandAlone集群来运行。

$SPARK_HOME/sbin/start-all.sh
$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop10:7077 \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.2.jar \
100

13.4 提交到YARN集群,使用yarn-client模式

$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.2.jar \
10

直接提交可能会报错:

Exception in thread "main" org.apache.spark.SparkException: When running with
master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the
environment.
	at
org.apache.spark.deploy.SparkSubmitArguments.error(SparkSubmitArguments.scala:657)
	at
org.apache.spark.deploy.SparkSubmitArguments.validateSubmitArguments(SparkSubmitArguments.scala:290)
	at
org.apache.spark.deploy.SparkSubmitArguments.validateArguments(SparkSubmitArguments.scala:251)
	at org.apache.spark.deploy.SparkSubmitArguments.<init>
(SparkSubmitArguments.scala:120)
	at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$1.<init>
(SparkSubmit.scala:907)
at
org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:907
)
	at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:81)
	at
org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

13.5 提交到YARN集群,使用yarn-cluster模式

$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.2.jar \
10

13.6 提交spark任务到YARN集群时,要求配置

spark-env.sh中:

export HADOOP_CONF_DIR=/home/bigdata/apps/hadoop-3.2.2/etc/hadoop/

spark-defaults.conf中:

spark.yarn.jars /home/bigdata/apps/hadoop-3.2.2/share/hadoop/yar

如若不生效,则直接拷贝 yarn-site.xml 文件到 $SPARK_HOME 中
上述任务在启动的时候,有可能会出现异常, 修改hadoop集群的yarn-site.xml文件, 增加如下配置:

<property>
	<name>yarn.nodemanager.vmem-pmem-rationame>
	<value>4value>
	<description>Ratio between virtual memory to physical memory when setting memory limits for containersdescription>
property>

<property>
	<name>yarn.nodemanager.pmem-check-enabledname>
	<value>falsevalue>
property>

<property>
	<name>yarn.nodemanager.vmem-check-enabledname>
	<value>falsevalue>
	<description>Whether virtual memory limits will be enforced for containersdescription>
property>


声明:
        文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博地址: http://weibo.com/luoyepiaoxue2014 点击打开链接

你可能感兴趣的:(Spark,数据计算,Spark,大数据)