六、yarn运行模式

简介

spark的yarn运行模式根据Driver在集群中的位置分成两种:

1)yarn-client 客户端模式

2)yarn-cluster 集群模式

yarn模式和standalone模式不同,standalone模式需要启动spark独立集群,这样SparkContext才能与Master进行交互通信。而yarn模式的资源管理全部托管给的ResourceManager了,所以它不需要启动spark独立集群,那么也就意味着你无法访问http://master:8080这个页面了。

yarn集群模式

spark的yarn集群模式,Driver运行在Application Master上,Application Master进程同时负责驱动我们的代码程序从ResourceManager申请资源。由于它直接运行在yarn的Container当中,所以并不需要客户端,客户端可以在提交完毕之后就关闭,如图:

1)客户端将生成作业信息并提交给ResourceManager

2)ResourceManager会选择一个NodeManager去启动container,并且把ApplicationMaster分配给它去运行

3)NodeManager接收到以后就会启动ApplicationMaster并初始化dag作业,此时NodeManager就成为Driver

4)ApplicationMaster向ResourceManager申请资源

5)ResourceManager分配资源的同时通知其它NodeManager启动相应的executor去执行task,并反馈执行情况

6)执行完毕,释放资源

yarn客户端模式

yarn客户端模式和yarn集群模式的区别很明显,就是在于ApplicationMaster仅仅负责从ResourceManager申请资源,而驱动代码程序的任务还是由Client客户端负责,所以Client客户端在整个过程中保持运行不会像集群模式一样提交完就关闭,如图:

1)客户端生成作业信息并提交给ResourceManager

2)ResourceManager在本地NodeManager启动container并分配运行ApplicationMaster

3)Client节点会初始化dag作业,通过ApplicationMaster去向ResourceManager申请资源

4)Client节点将任务分发给executor去执行,executor反馈执行情况

5)任务执行完毕,释放资源

yarn-client和yarn-cluster的区别

1)在yarn-cluster模式中,Driver运行在ApplicationMaster上,而在yarn-client模式中Driver运行在Client

2)yarn-cluster模式中,Client提交完可以直接关闭,yarn-client模式中保持运行并和executor通信

3)yarn-cluster模式中,ApplicationMaster负责资源申请驱动程序运行,yarn-client模式中只负责资源申请,运行程序由Client负责

4)yarn-cluster适合生产环境,而yarn-client适合交互和调试

参考书籍:《spark大数据技术与应用》

原文地址:https://www.cnblogs.com/lay2017/p/10055852.html