目录
YARN架构
YARN是Hadoop2.0之后出现的集群资源的管理与任务调度的分布式框架。
资源管理:
集群中的资源(如内存、cpu)使用情况由主节点ResourceManager管理。从节点NodeManager管理自己所在节点的资源使用情况并报告给主节点ResourceManager,从而主节点ResourceManager可以对整个集群的资源使用情况进行统一管理。
任务调度:
客户端提交Application给主节点ResourceManager,ResourceManager会为该应用分配合适的container,在指定的NodeManager生成一个应用程序管理者Application Master来管理该应用的所有任务;Application Master根据自己的任务需求向ResourceManager申请资源;ResourceManager根据请求分配任务所需要的container容器;Application Master会初始化container容器,并告诉container所在的NodeManager启动container中的任务。启动完成后,container中的任务由Application Master管理,在运行过程中,container中的任务会与Application Master保持联系,报告任务运行情况,同时Application Master与container所在的NodeManager保持通讯,目标就是可以实时监控container中的任务;当应用任务完成后会报告ResourceManager从而可以释放资源。
Spark on YARN的cluster模式
如果理解了YARN的架构设计,那么Spark on YARN就不难理解了。YARN cluster模式,就是通过YARN来调度Spark application所需要的资源。此时Driver程序会在YARN中运行,而应用的运行结果不能在客户端显示,所