Spark系列之SparkSubmit提交任务到YARN

这篇具有很好参考价值的文章主要介绍了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

结果截图:

Spark系列之SparkSubmit提交任务到YARN

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-ratio</name>
	<value>4</value>
	<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true,实际开发中设置成 true,学习阶段设置成 false -->
<property>
	<name>yarn.nodemanager.pmem-check-enabled</name>
	<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true,实际开发中设置成 true,学习阶段设置成 false -->
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
	<description>Whether virtual memory limits will be enforced for containers</description>
</property>


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


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博地址: http://weibo.com/luoyepiaoxue2014 点击打开链接文章来源地址https://www.toymoban.com/news/detail-435638.html

到了这里,关于Spark系列之SparkSubmit提交任务到YARN的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark 提交任务参数设置关于(线程,shuffle,序列化)

    是在使用 Apache Spark 时,为了设置 Java 虚拟机(JVM)的堆栈大小而使用命令行选项。 -Xss 是 Java 虚拟机的一个选项,用于设置线程的堆栈大小。在这个命令行选项中, -Xss6m 表示将线程的堆栈大小设为 6MB。这个选项的作用是为了避免在运行 Spark 任务时出现堆栈溢出的错误。

    2024年02月02日
    浏览(570)
  • spark streaming如何在kerberos认证的集群上提交任务

    集群有kerberos认证,spark批处理任务提交后正常运行,spark streaming/structed streaming 任务提交后运行不了,报 java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS] 的错误,其中streaming任务里面有用到sparkSQL 找到多种处理方式,在一一尝试之

    2024年02月20日
    浏览(34)
  • 海豚调度系列之:任务类型——SPARK节点

    Spark 任务类型用于执行 Spark 应用。对于 Spark 节点,worker 支持两个不同类型的 spark 命令提交任务: (1) spark submit 方式提交任务。 (2) spark sql 方式提交任务。 点击项目管理 - 项目名称 - 工作流定义,点击”创建工作流”按钮,进入 DAG 编辑页面: 拖动工具栏的 任务节点到画板

    2024年03月19日
    浏览(52)
  • pytest系列——allure之在测试用例添加标题(@allure.title())

    前言 通过使用装饰器@allure.title可以为测试用例自定义一个更具有阅读性的易读的标题。 allure.title的三种使用方式: 直接使用@allure.title为测试用例自定义标题; @allure.title支持通过占位符的方式传递参数,可以实现测试用例标题参数化,动态生成测试用例标题; @allure.dynam

    2024年04月27日
    浏览(31)
  • python—matplotlib库系列学习(一):plot函数(包含title、xlabel、ylabel、legend函数)

    目录 引言 plot函数 (1)简单的举例说明 (2)参数说明          1. marker(标记样式字符串)          2. color(颜色)          3. linestyle 和 linewidth (3)一个简便的写法 (4)一个图上画多条线 (5)通用的图形的美化补充         1. 标题         2. x轴 -

    2024年02月07日
    浏览(52)
  • 【Spark精讲】Spark任务运行流程

    目录 Spark任务执行流程 Client模式 Cluster模式 Yarn任务运行流程 YARN-CLIENT模式 YARN-CLUSTER模式 ​编辑 故障排查 YARN-CLIENT 模式导致的网卡流量激增问 题 YARN-CLUSTER 模式的 JVM 栈内存溢出无法执行问题         部署模式是根据Drvier和Executor的运行位置的不同划分的。client模式提交

    2024年04月10日
    浏览(88)
  • 企业Spark案例--酒店数据分析实战提交

    第1关:数据清洗--过滤字段长度不足的且将出生日期转: package com.yy   import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Dataset, SparkSession} object edu{     /**********Begin**********/     // 此处可填写相关代码     case class Person(id:String,Name:String,CtfTp:String,CtfId:String,G

    2024年02月09日
    浏览(54)
  • flink的常见的任务提交方式

    此方式使用起来相对比较简单,但是无法满足需要设置savepoint暂存点的流式任务需求。 使用此方式需要先创建Flink远方的执行环境,然后按序执行FlinkSql,流程如下: java示例如下: 此方式主要通过用java编写一个任务,然后打成jar的形式上传到flink集群。此方式比较灵活,可

    2024年04月26日
    浏览(35)
  • 【Flink】详解Flink任务提交流程

    通常我们会使用 bin/flink run -t yarn-per-job -c com.xxx.xxx.WordCount/WordCount.jar 方式启动任务;我们看一下 flink 文件中到底做了什么,以下是其部分源码 可以看到,第一步将相对地址转换成绝对地址;第二步获取 Flink 配置信息,这个信息放在 bin 目录下的 config. sh 中;第三步获取 JV

    2024年02月14日
    浏览(43)
  • Spark任务执行流程

    Driver启动,创建SparkContext SparkContext 向资源管理器注册,并向资源管理器申请运行 Executor 资源管理器分配资源,然后资源管理器启动 Executor Executor 发送心跳至资源管理器 Executor 向 Driver注册自己 SparkContext 构建 DAG 有向无环图 DAGScheduler 将 DAG 分解成 Stage(TaskSet) 把 Stage 发送

    2024年02月06日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包