spark on yarn Cluster 模式下,ApplicationMaster和driver是在同⼀个进程么?
解析:
答:是,driver 位于ApplicationMaster进程中。该进程负责申请资源,还负责监控程序、资源的动态情况。
如何使⽤命令查看application运⾏的⽇志信息
解析:
答:yarn logs -applicationId <app ID>
解析:
1)与其他计算框架共享集群资源(eg.Spark框架与MapReduce框架同时运⾏,如果不⽤Yarn进⾏资源分配,MapReduce分到的内存资源会很少,效率低下);资源按需分配,进⽽提⾼集群
资源利⽤等。
2)相较于Spark⾃带的Standalone模式,Yarn的资源分配更加细致
3)Application部署简化,例如Spark,Storm等多种框架的应⽤由客⼾端提交后,由Yarn负责资源的管理和调度,利⽤Container作为资源隔离的单位,以它为单位去使⽤内存,cpu等。
4)Yarn通过队列的⽅式,管理同时运⾏在Yarn集群中的多个服务,可根据不同类型的应⽤程序负载情况,调整对应的资源使⽤量,实现资源弹性管理。
解析:
1)Container作为资源分配和调度的基本单位,其中封装了的资源如内存,CPU,磁盘,⽹络带宽等。 ⽬前yarn仅仅封装内存和CPU
2)Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster
3) Container的运⾏是由ApplicationMaster向资源所在的NodeManager发起的,Container运⾏时需提供内部执⾏的任务命令.
运⾏在yarn中Application有⼏种类型的container?
解析:
1) 运⾏ApplicationMaster的Container:这是由ResourceManager(向内部的资源调度器)申请和启动的,⽤⼾提交应⽤程序时,可指定唯⼀的ApplicationMaster所需的资源;
2) 运⾏各类任务的Container:这是由ApplicationMaster向ResourceManager申请的,并由ApplicationMaster与NodeManager通信以启动之。