Spark On Yarn:提交Spark应用程序到Yarn

摘要:
要将Spark应用程序提交给Yarn运行,您需要先配置HADOOP CONF_DIR或Yarn_CONF_DIR,让Spark知道Yarn的配置信息,例如ResourceManager的地址。要以SparkStandalone模式提交Spark应用程序,请参阅:http://lxw1234.com/archives/2015/05/215.htm以下是与SparkOnYarn相关的一些配置参数:spark.yarn.am。memory默认值:512M内存,用于在Yarn客户端模式下请求YarnAppMaster。spark.yarnscheduler.heartbeat。Interval ms默认值:5000SparkApplicationMaster向YarnResourceManager发送心跳的间隔,以毫秒为单位。YarnResourceManager使用此地址将应用程序的运行URL从ResourceManager UI指向Spark应用程序末尾的SparkhistoryServerUI。

转载自:http://lxw1234.com/archives/2015/07/416.htm
关键字:Spark On Yarn、Spark Yarn Cluster、Spark Yarn Client

Spark On Yarn模式配置非常简单,只需要下载编译好的Spark安装包,在一台带有Hadoop Yarn客户端的机器上解压,简单配置之后即可使用。

要把Spark应用程序提交到Yarn运行,首先需要配置HADOOP_CONF_DIR或者YARN_CONF_DIR,让Spark知道Yarn的配置信息,比如:ResourceManager的地址。可以配置在spark-env.sh中,也可以在提交Spark应用之前export:

export HADOOP_CONF_DIR=/etc/hadoop/conf
yarn-cluster模式提交Spark应用程序


./spark-submit 
--class com.lxw1234.test.WordCount 
--master yarn-cluster 
--executor-memory 4G 
--num-executors 10 
/home/lxw1234/spark-wordcount.jar 
/logs/2015-07-14/ /tmp/lxw1234/output/

yarn-client模式提交Spark应用程序


./spark-submit 
--class com.lxw1234.test.WordCount 
--master yarn-client 
--executor-memory 4G 
--num-executors 10 
/home/lxw1234/spark-wordcount.jar 
/logs/2015-07-14/ /tmp/lxw1234/output/

Yarn Cluster模式和Yarn Client模式的主要区别

yarn-cluster模式中,应用程序(包括SparkContext)都是作为Yarn框架所需要的

ApplicationMaster,在Yarn ResourceManager为其分配的一个随机节点上运行;

而在yarn-client模式中,SparkContext运行在本地,该模式适用于应用程序本身需要在本地进行交互的场合。

Spark Standalone模式下提交Spark应用程序,可参考:

http://lxw1234.com/archives/2015/05/215.htm

以下是一些Spark On Yarn相关的配置参数:
spark.yarn.am.memory

默认值:512M

在yarn-client模式下,申请Yarn App Master所用的内存。
spark.driver.memory

默认值:512M

在yarn-cluster模式下,申请Yarn App Master(包括Driver)所用的内存。
spark.yarn.am.cores

默认值:1

在yarn-client模式下,申请Yarn App Master所用的CPU核数
spark.driver.cores

默认值:1

在yarn-cluster模式下,申请Yarn App Master(包括Driver)所用的CPU核数。
spark.yarn.am.waitTime

默认值:100s

在yarn-cluster模式下,Yarn App Master等待SparkContext初始化完成的时间;

在yarn-client模式下,Yarn App Master等待SparkContext链接它的时间;
spark.yarn.submit.file.replication

默认值:HDFS副本数

Spark应用程序的依赖文件上传到HDFS时,在HDFS中的副本数,这些文件包括Spark的Jar包、应用程序的Jar包、其他作为DistributeCache使用的文件等。通常,如果你的集群节点数越多,相应地就需要设置越多的拷贝数以加快这些文件的分发。
spark.yarn.preserve.staging.files

默认值:false

在应用程序结束后是否保留上述上传的文件。
spark.yarn.scheduler.heartbeat.interval-ms

默认值:5000

Spark Application Master向Yarn ResourceManager发送心跳的时间间隔,单位毫秒。
spark.yarn.max.executor.failures

默认值:numExecutors * 2 (最小为3)

最多允许失败的Executor数量。
spark.yarn.historyServer.address

默认值:none

Spark运行历史Server的地址,主机:host,如:lxw1234.com:18080,注意不能包含http://

默认不配置,必须开启Spark的historyServer之后才能配置。该地址用于Yarn ResourceManager在Spark应用程序结束时候,将该application的运行URL从ResourceManager的UI指向Spark historyServer UI。
spark.executor.instances

默认值:2

Executor实例的数量,不能与spark.dynamicAllocation.enabled同时使用。
spark.yarn.queue

默认值:default

指定提交到Yarn的资源池
spark.yarn.jar

Spark应用程序使用的Jar包位置,比如:hdfs://cdh5/lxw1234.com/

参考更多大数据Hadoop、Spark、Hive相关:lxw的大数据田地

另外,在提交Spark应用程序到Yarn时候,可以使用—files指定应用程序所需要的文件;

使用—jars 和 –archives添加应用程序所依赖的第三方jar包等。

免责声明:文章转载自《Spark On Yarn:提交Spark应用程序到Yarn》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇verilog $fopen 函数的小缺陷ggplot2绘图入门系列之三:位置调整与条形图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

连载:面向对象葵花宝典:思想、技巧与实践(1)

史前时代:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写0和1的序列来代表程序语言。例如:使用0000 代表 加载(LOAD),0001 代表 存储(STORE)等。  机器语言由机器直接执行,速度快,但一个很明显的缺点就是:写起来实在是太困难了,一旦你发现自己写错了,改起来...

在GNU/Linux下制作Windows 10安装U盘

今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来。回家前,小仙女已在微软官网帮我买好了正版软件,我也利用微软提供的Media Creation Tool创建了安装U盘。然而,等拿回家后安装的时候才发现,安装密码无效。联系客服后得...

用docker启动的oracle,重启后数据库访问失败

昨天更改了oracle数据库的最大连接数,然后手动重启了docker,以为数据库就直接启动了,没想到报错了 报错类似于一下文章 https://blog.csdn.net/h106140873/article/details/103251534 SQL>startup ORA-00821: Specified value of sga_target...

matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。

最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢。。。。 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数,搞不清楚怎么用的,表示不大明白,下了一个软件包: 名字:Matlab Toolbox for Dimensionality Reduction 链接:http...

.Net之路(十五)图解LoadRunner压力测试

在项目编码阶段结束后,就需要进行软件测试。成为软件开发过程中一个必不可少的环节,而自动化测试也是将逐步代替人工繁杂的测试。压力测试就是软件测试对软件性能评估的一个方面,下面就简单介绍我在使用loadrunner这款工具时的一些情况。 loadRunner简介 这款软件是一种能够预测系统行为和性能的负载工具。可以通过模拟上千万用户实施并发负载和性能观测。 组...

E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

安装terminator等一些软件等时候,遇到了这样等问题 leo@leo:~$ sudo apt-get install terminator [sudo] password for leo: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是...