概述
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-submit时通过 --deploy-mode cluster/client 指定。
工作原理
yarn cluster
在RM接受到申请后在集群中选择一个NM分配Container,并在Container中启动ApplicationMaster进程
在ApplicationMaster中初始化SparkContext
ApplicationMaster向RM申请到Container后通知NodeManager在获得的Container中启动Executor进程
sparkContext分配Task给Executor,Executo