简介

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大数据技术与应用》

最新文章

  1. 实例操作JSONP原理
  2. Tomcat7.0安装配置
  3. Sentinel-Redis高可用方案(二):主从切换
  4. Web 四种常见的POST提交数据方式
  5. GNOME3任务栏、标题栏过宽问题
  6. python知识总结
  7. JS事件大全
  8. THD 变量存入threads中
  9. document.write() 和 document.writeln() 区别
  10. hdu 5585 Numbers【大数+同余定理】
  11. FastDFS配置过程
  12. ASP.NET Web Forms 4.5的新特性
  13. HDU 畅通工程系列
  14. linux必知必会命令
  15. MVC中的下载文件及上传
  16. 201903<<高效15法则>>
  17. pytorch之张量的理解
  18. 7个拒绝使用TypeScript的借口
  19. [转载]Oracle创建用户、角色、授权、建表
  20. iOS-SVProgressHUDMaskType

热门文章

  1. Delphi XE7编译安卓程序出错了
  2. 微信小程序 —— button按钮去除border边框
  3. 转载文章 208 个最常见 Java 面试题全解析
  4. DESTOON从CSRF到GETSHELL
  5. django参考博客学习
  6. springboot多数据源动态切换和自定义mybatis分页插件
  7. Nginx采用yum安装-Carr
  8. log 模块使用 (直接用的方法)
  9. P4542 [ZJOI2011]营救皮卡丘
  10. linux 将进程或者线程绑定到指定的cpu上