概述 spark on yarn是spark集群模式之一,通过resourcemanager进行调度,较之standalone模式,不需要单独启动spark服务。...关于spark 的三种模式,上一篇文章(saprk zookeeper搭建spark高可用集群)中已经讲过,在此不做赘述。 本文操作的前提是已经搭建好hdfs和yarn集群。...环境 主机名 应用 tvm13 spark、Scala tvm14 spark、Scala tvm15 spark、Scala spark on yarn架构 ?...基于Yarn有两种提交模式,一种是基于Yarn的yarn-cluster模式,一种是基于Yarn的yarn-client模式。...spark.yarn.jars hdfs://cluster01/spark/jars spark.yarn.stagingDir
在Spark Standalone模式下,集群资源调度由Master节点负责。Spark也可以将资源调度交给YARN来负责,其好处是YARN支持动态资源调度。...在Spark Standalone集群部署完成之后,配置Spark支持YARN就相对容易多了,只需要进行如下两步操作。...Spark程序由Master还是YARN来调度执行,是由Spark程序在提交时决定的。以计算圆周率Pi的示例程序为例,Spark程序的提交方式是: $ ....而在yarn-client模式下,Driver会对本地资源造成一些压力,但优势是Spark程序在运行过程中可以进行交互。.../bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ lib/spark-examples
在Spark中,支持4种运行模式: Local:开发调试时使用 Standalone:如果一个集群是Standalone的话,那么就需要在多台机器上同时部署Spark环境 YARN:在生产环境上使用该模式...,统一使用YARN进行整个集群作业(MR、Spark)的资源调度 Mesos:目前使用较少 不管使用哪种模式,Spark应用程序的代码是一模一样的,只需要在提交的时候通过--master参数来指定我们的运行模式即可.../bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --executor-memory 1G.../bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ --executor-memory..._2.11-2.1.0.jar \ 4 查看spark任务的日志 yarn logs -applicationId application_1495632775836_0002
今天尝试一下Spark on YARN的部署方式。 一、实验目的 1. 只在一台机器上安装Spark,基于已有的Hadoop集群,使用YARN调度资源。 2....不启动Master和Worker进程提交Spark作业。 3. 通过YARN的WebUI查看Spark作业的执行情况。...编辑spark-defaults.conf文件,添加如下一行 spark.yarn.jar=hdfs://master:9000/user/spark-assembly-1.5.0-hadoop2.6.0...# 将yarn和spark配置文件拷贝到客户端机器 scp /home/grid/hadoop/etc/hadoop/yarn-site.xml 192.168.56.104:/home/grid...thriftserver服务 $SPARK_HOME/sbin/start-thriftserver.sh --master yarn 此时在yarn的WebUI查看应用的运行情况,如图8所示
一、Hadoop Yarn组件介绍: 我们都知道yarn重构根本的思想,是将原有的JobTracker的两个主要功能资源管理器 和 任务调度监控 分离成单独的组件。...(比如使用spark-submit 执行程序jar包,就需要向ResourceManager注册,申请相应的容器,资源),其中该ResourceManager提供一个调度策略的插件,负责将集群资源分配给多个队列和应用程序...二、Spark on Yarn 1.当提交一个spark-submit任务时,spark将在startUserClass函数专门启动了一个线程(名称为Driver的线程)来启动用户提交的Application...2.等待SparkContext初始化完成,最多等待spark.yarn.applicationMaster.waitTries次数(默认为10),如果等待了的次数超过了配置的,程序将会退出;否则用SparkContext...Spark on Yarn只需要部署一份spark,当应用程序启动时,spark会将相关的jar包上传注册给ResoureManager,任务的执行由ResourceManager来调度,并执行spark
Spark On Yarn 资源申请流程 Client 模式 因为是Client模式,所以当我们 Spark-Submit 提交Spark任务的时候, 会直接走到我们的main方法,进行Spark...Spark Context 初始化的时候会生成两个比较重要的对象DAGSchedule 和 TaskSchedule, TaskSchedule 会进行任务资源的申请,因为我们这里是用 Yarn 作为资源调度器...接下来就是 Yarn 的资源调度了 Yarn 首先会启动一个 ApplicationMaster(AM) 来管理本次申请, 所以 Yarn 的第一步是选一台空闲的 NodeManager 启动 AM...到这里我们也基本讲明白了 Yarn-Client 模式的资源申请了, 但是说的比较浅,没有涉及到很多细节, 说来也比较惭愧,Spark 的 Standalone 模式源码倒是看过, 但是到目前为止...因为是Cluster模式,所以当我们 Spark-Submit 提交Spark任务的时候, 首先是直接去向 RM 申请启动Driver的资源 Yarn 还是会首先选一台空闲的 NodeManager
Spark on Yarn 首先介绍 Spark 的资源管理架构。...以上就是 Spark 在资源管理上的抽象出来的架构,这个架构跟 Yarn 的架构十分相似,因此 Spark 很容易地构建于 Yarn 之上。...接着看看 Spark on Yarn 对 Job 的处理过程。...Spark on Yarn 还有另外一种运行模式:Spark on Yarn-Client。...不同于上述的 Spark on Yarn-Cluster,Spark on Yarn-Client 的客户端在提交完任务之后不会将 Spark Driver 托管给 Yarn,而是在客户端运行。
/ Spark on Yarn / 首先介绍 Spark 的资源管理架构。...以上就是 Spark 在资源管理上的抽象出来的架构,这个架构跟 Yarn 的架构十分相似,因此 Spark 很容易地构建于 Yarn 之上。...接着看看 Spark on Yarn 对 Job 的处理过程。...图 7,via https://www.iteblog.com/archives/1223.html Spark on Yarn 还有另外一种运行模式:Spark on Yarn-Client。...不同于上述的 Spark on Yarn-Cluster,Spark on Yarn-Client 的客户端在提交完任务之后不会将 Spark Driver 托管给 Yarn,而是在客户端运行。
,这使得spark可以灵活运行在目前比较主流的资源管理系统上,典型的代表是mesos和yarn,我们称之为“spark on mesos”和“spark on yarn”。...Spark on yarn在spark 1.0版本中已经变得比较成熟,但如果运行在线上环境中,仍面临很多挑战。 挑战1: 应用程序日志如何获取?...Spark on yarn提供了应用程序运行的web界面,可以通过这个界面查看spark作业的stage,task等详细信息,但无法获取应用程序的运行日志。...因此,对于想把spark运行在yarn上的公司,第一个需要做的工作可能是为用户提供一个好的日志查看工具,可以查看正在运行的,或者运行完成(成功和失败)的spark作业的,在yarn-client和yarn-cluster...挑战3:yarn资源调度器对spark这类作业的水土不服 对于yarn而言,spark仍然是一种比较特殊的作业,这使得spark难以与其他类型的应用程序(比如mapreduce)友好地运行在一个集群中
工作期间,我提交spark任务到yarn上,发现指定的资源(使用内存大小。...使用core的个数)总是与yarn的UI页面显示的资源使用量不一致,写本文说明一下这个问题,以及介绍一下spark on yarn的资源配置。 以下是我的yarn集群各节点的物理资源: ?.../spark-test-1.0.jar 任务运行后yarn UI显示: ?...接下说一下spark on yarn怎么配置资源。...测试: $SPARK_HOME/bin/spark-submit \ --class com.bonc.rdpe.spark.test.yarn.WordCount \ --master yarn \
而移植性高的体现就在于Spark的部署方式有多种模式,如:本地local、Standalone、Apache Mesos、Hadoop YARN、EC2、Mesos、K8S等等。...背景 一般公司的大数据项目基础设施都是建立在hdfs之上,所以在大部分的公司里,Spark都是跑在Yarn之上,yarn作为一个资源调度器并不能感知Spark作业具体需要分配多少资源,那就需要程序员在提交...Spark作业的时候,设置作业所需要的资源向Yarn申请。...spark的yarn-client提交流程 在client端启动Driver进程,初始化作业,解析程序,初始化两个DAGScheduler,TaskScheduler....YARN集群管理器会根据我们为Spark作业设置的资源参数,在各个工作节点上,启动一定数量的Executor进程,每个Executor进程都占有一定数量的memory和CPU core。
其底层采用Scala这种函数式语言书写而成,并且所提供的API深度借鉴Scala函数式的编程思想,提供与Scala类似的编程接口 Spark on Yarn ?...当作业提交到YARN上之后,客户端就没事了,甚至在终端关掉那个进程也没事,因为整个作业运行在YARN集群上进行,运行的结果将会保存到HDFS或者日志中。...二、提交到YARN集群,YARN操作 1、运行ApplicationMaster的run方法; 2、设置好相关的环境变量。 ...在Driver中将会初始化SparkContext; 6、等待SparkContext初始化完成,最多等待spark.yarn.applicationMaster.waitTries次数(默认为10...关于这两个动作,在Spark开发指南中会有就进一步的详细介绍,它们是基于Spark开发的核心。这里将Spark的官方ppt中的一张图略作改造,阐明一下两种动作的区别。
这一章打算讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一个月的时间,更新太快了,节奏跟不上啊,这里仍旧是讲1.0.0的代码...在第一章《spark-submit提交作业过程》的时候,我们讲过Spark on yarn的在cluster模式下它的main class是org.apache.spark.deploy.yarn.Client...def run() { // 设置本地目录,默认是先使用yarn的YARN_LOCAL_DIRS目录,再到LOCAL_DIRS System.setProperty("spark.local.dir...when running the AM, the Spark master is always "yarn-cluster" System.setProperty("spark.master"...val schedulerInterval = sparkConf.getLong("spark.yarn.scheduler.heartbeat.interval-ms", 5000)
最近有不少知识星球粉丝和公众号粉丝给浪尖留言,说是不知道spark on yarn的时候,yarn如何分配Spark 的driver和executor内存的。...今天浪尖就给大家分享一下spark on yarn,内存分配原理。 1. ...spark driver和excutor的off-heap内存是如何配置的。 yarn的最小调度单元。 首先,讲一下上面的这三个概念吧: 1). spark.driver.memory 默认值1g。...5).spark.yarn.am.memory 默认值512m,Appmaster在client模式下的内存。假如是Cluster模式下会使用spark.driver.memory来代替。...spark on yarn 的cluster模式下Driver端与appmaster是在一起的,所以appmaster内存参数无效,因此driver和executor总内存由1.1和1.2可得: 20GB
随着spark越来越流行,我们的很多组件都有可能和spark集成,比如说spark处理完的数据写入mysql,redis,或者hbase,elasticsearch,spark本身不包含db的依赖的...在使用spark集成es时候,我使用的是上面的第二种方法,下面看下如何使用,集成es的jar包如下: 这里需要解释一下依赖jar包如何在spark中提交,大多数时候我们直接使用spark-submit...在使用spark和es集成的时候guava的包就出现了上述的第二种情况,所以我在下面使用了第二种加载方式,最后调试通过。...最后需要注意的是,如果跟hive集成的时候,还用到了yarn-cluster模式,那么提交任务的时候,必须把hive-site.xml也提交上去,否则会报找不到hive的表异常。...最终提交spark任务到yarn集群上的命令如下: spark这个集成相关依赖时,还是比较简单的,大部分时候我们使用--jars都能非常轻松的解决依赖问题,少数时候需要在每一台spark机器上上传
,这使得spark可以灵活运行在目前比较主流的资源管理系统上,典型的代表是mesos和yarn,我们称之为“spark on mesos”和“spark on yarn”。...Spark on yarn在spark 1.0版本中已经变得比较成熟,但如果运行在线上环境中,仍面临很多挑战。 挑战1: 应用程序日志如何获取?...Spark on yarn提供了应用程序运行的web界面,可以通过这个界面查看spark作业的stage,task等详细信息,但无法获取应用程序的运行日志。...因此,对于想把spark运行在yarn上的公司,第一个需要做的工作可能是为用户提供一个好的日志查看工具,可以查看正在运行的,或者运行完成(成功和失败)的spark作业的,在yarn-client和yarn-cluster...挑战3:yarn资源调度器对spark这类作业的水土不服 对于yarn而言,spark仍然是一种比较特殊的作业,这使得spark难以与其他类型的应用程序(比如mapreduce)友好地运行在一个集群中,
cd /opt spark-submit --version 5. config yarn cd $SPARK_HOME cp conf/spark-defaults.conf.template conf.../spark-defaults.conf vi conf/spark-defaults.conf add: spark.master yarn 6. run on yarn start hdfs and...process spark-submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars.../running-on-yarn.html https://www.linode.com/docs/guides/install-configure-run-spark-on-top-of-hadoop-yarn-cluster.../ https://sparkbyexamples.com/spark/spark-setup-on-hadoop-yarn/
1.1 Cluster部署模式 在 Cluster 模式下,Spark Driver 在集群主机上的 ApplicationMaster 上运行,它负责向 YARN 申请资源,并监督作业的运行状况。...当用户提交了作业之后,就可以关掉 Client,作业会继续在 YARN 上运行。 ? Cluster 模式不太适合使用 Spark 进行交互式操作。...1.2 Client部署模式 在 Client 模式下,Spark Driver 在提交作业的主机上运行。ApplicationMaster 仅负责从 YARN 中请求 Executor 容器。...在YARN上运行Spark Shell应用程序 要在 YARN 上运行 spark-shell 或 pyspark 客户端,请在启动应用程序时使用 --master yarn --deploy-mode...3.2 以Client模式运行 spark-submit \ --class com.sjf.example.batch.WordCount \ --master yarn \ --deploy-mode
下载网址为:http://spark.apache.org/downloads.html,本文下载的是spark-1.6.0-bin-hadoop2.6.tgz,这个可以直接跑在YARN上。...tgz 3) 建立软链接:ln -s spark-1.6.0-bin-hadoop2.6 spark 在yarn上运行spark,不需要每台机器都安装spark,可以只安装在一台机器上。...启动Spark 由于运行在Yarn上,所以没有启动Spark这一过程。而是在执行命令spark-submit时,由Yarn调度运行Spark。 4.1. 运行自带示例 ..../bin/spark-sql --master yarn 为什么SparkSQL Cli只能以client模式运行?.../bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory
本篇博客,Alice为大家带来关于如何搭建Spark的on yarn集群模式的教程。 ?...---- 官方文档: http://spark.apache.org/docs/latest/running-on-yarn.html 准备工作 安装启动Hadoop(需要使用HDFS和YARN,已经...ok) 安装单机版Spark(已经ok) 注意:不需要集群,因为把Spark程序提交给YARN运行本质上是把字节码给YARN集群上的JVM运行,但是得有一个东西帮我去把任务提交上个...YARN,所以需要一个单机版的Spark,里面的有spark-shell命令,spark-submit命令 修改配置: 在spark-env.sh ,添加HADOOP_CONF_DIR配置...Spark On YARN的Cluster模式 指的是Driver程序运行在YARN集群上 补充Driver是什么: The process running the main() function
领取专属 10元无门槛券
手把手带您无忧上云