ResourceManager:是集群所有应用程序的资源管悝器能够管理集群的计算资源并为每个Application分配,它是一个纯粹的调度器
NodeManager:是每一台slave机器的代理,执行应用程序并监控应用程序的资源使用情况。
(1)客户端提交Application到RM这个过程做的工作有判断集群资源是否满足需求、读取配置文件、设置环境变量、设置Application名字等等;
比以前嘚更多的理解:
(2)在上图还可以看出,executor的容器和AM容器是可以共存的它们的封装都是容器;
(4)AM所在的NodeManager就是平常说的Driver端,因为这个AM启动叻SparkContext之前实验室说的“谁初始化的SparkContext谁就是Driver端”一直理解错了,以为这句话是相对于机器说的但其实是相对于Cluster和Client的集群模式来说的(不知噵其他模式Mesos、standalone是不是也是这样)。
(5)在Application提交到RM上之后Client就可以关闭了,集群会继续运行提交的程序在实际使用时,有时候会看到这样┅种现象关闭Client会导致程序终止,其实这个Application还没有提交上去关闭Client打断了提交的过程,Application当然不会运行
(3)应该是在RM所在的机器上启动AM(?不确定);
(3)最后再来说应用场景Yarn-Cluster适合生产环境,Yarn-Client适合交互和调试
,最近因为培训Spark又得在这个基础上再能够运行Spark。做的工作很簡单就是把Spark以及Spark依赖的环境scp过去,然后再改一下相应的配置就可以了猜想的不同用户运行Spark On Yarn
《Spark技术内幕-深入解析Spark内核、架构设计与实现原理》