零、本讲学习目标
学会搭建Spark On YARN模式的集群
能够将Spark应用程序提交到集群运行
一、Spark On YARN架构
Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce程序和Spark程序,YARN很好地对每一个程序实现了资源的隔离。这使得Spark与MapReduce可以运行于同一个集群中,共享集群存储资源与计算资源。Spark On YARN模式与Standalone模式一样,也分为client和cluster两种提交方式。
(一)client提交方式
Spark On YARN的client提交方式提交应用程序后的主要进程有:SparkSubmit、ResourceManager、NodeManager、CoarseGrainedExecutorBackend、ExecutorLauncher,运行架构如下图所示:
与Standalone模式的client提交方式类似,客户端会产生一个名为SparkSubmit的进程,Driver程序则运行于该进程中,且ResourceManager的功能类似于Standalone模式的Master;NodeManager的功能类似于Standalone模式的Worker。当Spark程序运行时,ResourceManager会在集群中选择一个NodeManager进程启动一个名为ExecutorLauncher的子进程,该子进程是Spark的自定义实现,承担YARN中的ApplicationMaster角色,类似Map