摘要

在Spark中,有Yarn-Client和Yarn-Cluster两种模式可以运行在Yarn上,通常Yarn-cluster适用于生产环境,而Yarn-Cluster更适用于交互,调试模式,以下是它们的区别
Spark插拨式资源管理
Spark支持Yarn,Mesos,Standalone三种集群部署模式,它们的共同点:Master服务(Yarn ResourceManager,Mesos master,Spark standalone)来决定哪些应用可以运行以及在哪什么时候运行,Slave服务(Yarn NodeManger)运行在每个节点上,节点上实际运行着Executor进程,此外还监控着它们的运行状态以及资源的消耗
Spark On Yarn的优势
1. Spark支持资源动态共享,运行于Yarn的框架都共享一个集中配置好的资源池
2. 可以很方便的利用Yarn的资源调度特性来做分类·,隔离以及优先级控制负载,拥有更灵活的调度策略
3.Yarn可以自由地选择executor数量
4.Yarn是唯一支持Spark安全的集群管理器,使用Yarn,Spark可以运行于Kerberized Hadoop之上,在它们进程之间进行安全认证 
Yarn-cluster VS Yarn-client
当在Spark On Yarn模式下,每个Spark Executor作为一个Yarn container在运行,同时支持多个任务在同一个container中运行,极大地节省了任务的启动时间
Appliaction Master
为了更好的理解这两种模式的区别先了解下Yarn的Application Master概念,在Yarn中,每个application都有一个Application Master进程,它是Appliaction启动的第一个容器,它负责从ResourceManager中申请资源,分配资源,同时通知NodeManager来为Application启动container,Application Master避免了需要一个活动的client来维持,启动Applicatin的client可以随时退出,而由Yarn管理的进程继续在集群中运行
 
Yarn-cluster
在Yarn-cluster模式下,driver运行在Appliaction Master上,Appliaction Master进程同时负责驱动Application和从Yarn中申请资源,该进程运行在Yarn container内,所以启动Application Master的client可以立即关闭而不必持续到Application的生命周期,下图是yarn-cluster模式
Yarn-cluster模式下作业执行流程:
1. 客户端生成作业信息提交给ResourceManager(RM)
2. RM在某一个NodeManager(由Yarn决定)启动container并将Application Master(AM)分配给该NodeManager(NM)
3. NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
4. Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
5. Executor向NM上的Application Master注册汇报并完成相应的任务
Yarn-client
在Yarn-client中,Application Master仅仅从Yarn中申请资源给Executor,之后client会跟container通信进行作业的调度,下图是Yarn-client模式
Yarn-client模式下作业执行流程:
1. 客户端生成作业信息提交给ResourceManager(RM)
2. RM在本地NodeManager启动container并将Application Master(AM)分配给该NodeManager(NM)
3. NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
4. Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
5. Executor向本地启动的Application Master注册汇报并完成相应的任务
下表是Spark Standalone与Spark On Yarn模式下的比较

参考资料:Apache Spark Resource Management and YARN App Models

yarn-cluster 和yarn-client区别相关推荐

  1. Spark通过YARN提交任务不成功(包含YARN cluster和YARN client)

    无论用YARN cluster和YARN client来跑,均会出现如下问题. [spark@master spark-1.6.1-bin-hadoop2.6]$ jps 2049 NameNode ...

  2. 从源码角度看Spark on yarn client cluster模式的本质区别

    首先区分下AppMaster和Driver,任何一个yarn上运行的任务都必须有一个AppMaster,而任何一个Spark任务都会有一个Driver,Driver就是运行SparkContext(它 ...

  3. Spark on YARN cluster client 模式作业运行全过程分析

    一.Spark:Yarn-Cluster 与 Yarn-Client 的区别与联系 我们都知道Spark支持在yarn上运行,但是Spark on yarn有分为两种模式yarn-cluster和ya ...

  4. 一文看懂npm、yarn、pnpm之间的区别

    原文:Understanding differences between npm, yarn and pnpm 作者:Alex Kras 翻译:雁惊寒 本文作者对比了当前主流的包管理工具npm.yar ...

  5. kerberos体系下的应用(yarn,spark on yarn)

    kerberos 介绍 阅读本文之前建议先预读下面这篇博客 kerberos认证原理---讲的非常细致,易懂 Kerberos实际上一个基于Ticket的认证方式.Client想要获取Server端的 ...

  6. Spark On Yarn --jars/spark.yarn.jars 踩坑 与 提升spark submit速度

    一.引言 Spark submit 可以选择 --jars 传入本地的jar也可以 --jars 传入HDFS的jar包,经过半下午的实验,终于搞清了两者的关系以及 spark.yarn.jars 和 ...

  7. Hadoop 3.x(Yarn)----【Yarn 资源调度器】

    Hadoop 3.x(Yarn)----[Yarn 资源调度器] 1. Yarn 基础架构 2. Yarn 工作机制 3. 作业提交全过程 4. Yarn 调度器和调度算法 1. 先进先出调度器(FI ...

  8. npm安装的yarn遇到【yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次】

    我通过vs里的终端用npm下载yarn后使用yarn时遇到了报错 yarn : 无法将"yarn"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包 ...

  9. 【yarn】INFO ipc.Client Retrying connect to server xxx 8032 Already tried 0 time(s)

    文章目录 1.场景1 1.1 概述 1.2.yarn没启动? 1.3. 方法2 1.4.解决方法 2.场景2 2.1 概述 1.场景1 1.1 概述 #mermaid-svg-OQ3qV0Av3DKo ...

  10. 图解Spark On Yarn cluster模式运行机制

最新文章

  1. django创建项目案例1详细介绍方法01
  2. IBM Rational上海大会印象
  3. SAP UI5 的 TypeScript 实践
  4. 屠呦呦入选《时代周刊》100位最具影响力女性人物榜
  5. 效果好,速度快!DenseNAS:密集连接搜索空间下的高灵活度网络结构搜索
  6. java eml文件解析_java 解析 eml的源代码
  7. 【金蝶K3】新/老单据转换流程相关表说明(单据转换流程下推老单,钩稽关系可为严格控制)
  8. 8700k超频测试软件,双节+双核,i7 8700k +Z370 Extreme4超频测试
  9. 数据分析 | 异常数据识别小结
  10. 财会法规与职业道德【6】
  11. Domain Impression A Source Data Free Domain Adaptation Method
  12. Python初级项目之随机漫步的Matplotlib实现
  13. win10 全屏秒退
  14. android中文首字母排序,Android 实现中文按拼音排序方法
  15. 漫步最优化五——可行域
  16. 新鲜出炉2018年上半年(低、中、高价位)SUV车型销量排行榜
  17. 哈佛商学院20部必看电影
  18. FPGA之DDS信号发生器
  19. Python常用基础语法知识点大全
  20. android支持苹果吗,安卓手机能用苹果USB-C音频线吗?实测10款手机仅1款不支持

热门文章

  1. 「mac基础知识」mac上将Keynote设置为使用iCloud的方法
  2. cargo 使用国内源镜像,引用 substrate 的 Contracts Pallet Crate 编译错误
  3. jquery-8 jquery如何处理css样式
  4. 挨踢部落故事汇(10):技术晋升管理的心声
  5. Laravel 获取执行的sql语句
  6. 九章算法系列(#2 Binary Search)-课堂笔记
  7. SSL Pining Mode 设置iOS SSL 连接安全
  8. 点滴积累【JS】---JS小功能(JS实现模仿微博发布效果)
  9. DRBD 管理、故障处理部分
  10. 火爆Github的刷题攻略,现在配套网站上线了!!力扣刷题网站,刷题路线