Spark两种提交方式Yarn-client and Yarn-cluster

Spark支持三种集群部署方式(Standalone,Mesos,Yarn),其中Master服务(Spark Standalone,Mesos Master,Yarn ResourceManager)决定哪些应用可以运行,在那个节点上运行,以及什么时候运行。Slave服务(Yarn NodeManager)运行在每个节点上,节点控制着Executor进程,同时监控作业的运行状态以及资源的消耗。Spark运行在Yarn上,有两种模式,Yarn-Client和Yarn-Cluster。通常情况下,Yarn-Cluster用于生产环境,Yarn-Client用于交互、调试。

1.Appliaction Master

在Yarn中,每个application都有一个Application Master进程,它是Appliaction启动的第一个容器,它负责从ResourceManager中申请资源,分配资源,同时通知NodeManager来为Application启动container,Application Master避免了需要一个活动的client来维持,启动Applicatin的client可以随时退出,而由Yarn管理的进程继续在集群中运行。
当在Yarn下运行Spark作业时,每个Spark Executor作为一个Yarn 容器(container)在运行,同时支持多个任务在同一个容器中运行,节省了任务的启动时间。

2.Yarn-client

在Yarn-client模式下,AM仅仅从Yarn中申请资源分配给Executor,之后client会跟容器(Container)通信进行作业调度。Client不能离开.如下图所示:

执行流程:

  • 客户端提交作业给ResourceManager(RM)
  • RM在本地NodeManager(NM)启动container并将AM分配给该NM
  • NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
  • Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
  • Executor向本地启动的AM注册汇报并完成相应的任务

    3.Yarn-Cluster

    在Yarn-cluster模式下,driver运行在AM上,AM进程同时负责驱动Application和从Yarn中申请资源,该进程运行在Yarn container内,所以启动AM的client可以立即关闭而不必持续到Application的生命周期,如下图所示:

    执行流程:

  • 客户端生成作业信息提交给ResourceManager(RM)
  • RM在某一个NodeManager(由Yarn决定)启动container并将Application Master(AM)分配给该NodeManager(NM)
  • NM接收到RM的分配,启动Application Master并初始化作业,此时这个NM就称为Driver
  • Application向RM申请资源,分配资源同时通知其他NodeManager启动相应的Executor
  • Executor向NM上的Application Master注册汇报并完成相应的任务

原文:大专栏  Spark两种提交方式Yarn-client and Yarn-cluster

原文地址:https://www.cnblogs.com/petewell/p/11615101.html

时间: 2024-07-28 22:15:32

Spark两种提交方式Yarn-client and Yarn-cluster的相关文章

get和post两种提交方式的区 别

提交方式: get提交. 地 址 栏 : http://10.1.31.69:9090/?user=abc&psw=123&repsw=123&sex=nan&tech=java&tech=html&c ountry=cn GET /?user=abc&psw=123&repsw=123&sex=nan&tech=java&tech=html&country=cn HTTP/1.1 Accept: image/

【转载】form表单的两种提交方式,submit和button的用法

1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){   var result = document.getElementById("userid").value;   var password = document.getElementById("userpass

spark on yarn的两种提交方式

和yarn-cluster模式一样,整个程序也是通过spark-submit脚本提交的.但是yarn-client作业程序的运行不需要通过Client类来封装启动,而是直接通过反射机制调用作业的main函数.下面就来分析: 1.通过SparkSubmit类的launch的函数直接调用作业的main函数(通过反射机制实现),如果是集群模式就会调用Client的main函数. 2.而应用程序的main函数一定都有个SparkContent,并对其进行初始化: 3.在SparkContent初始化中将

web 开发之js---ajax 中的两种提交方式ajax post 和 ajax get 实例

()post http://04101334.iteye.com/blog/637695/ ()get function serializeElement(element) { var method = element.tagName.toLowerCase(); var parameter = input(element); if (parameter) { var key = encodeURIComponent(parameter[0]); if (key.length == 0) ret

form表单的两种提交方式,submit和button的用法

一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){   var result = document.getElementById("userid").value;   var password = document.getElementById("userpassid").value;   if(result == ""  ){     alert(

flink on yarn模式下两种提交job方式

flink on yarn模式下两种提交job方式 https://juejin.im/post/5bf8dd7a51882507e94b8b15 https://www.cnblogs.com/asker009/p/11327533.html https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/deployment/yarn_setup.html#flink-yarn-session 原文地址:https://www.

ajax有两种提交数据的方式,分别为get和post(转)

ajax有两种提交数据的方式,分别为get和post.post方法可传输大于2K的数据,在Ajax里的应用不同之处在于:"post方法的请求地址与传输的数据是放在两个对象里—-请求地址放在open对象里,传输的数据放在send对象里:并且在传输数据之前定义一个传输文件HTTP头信息(setRequestHeader)" 以下为引用的内容: <SCRIPT LANGUAGE="javascript"> function saveUserInfo(){ //

PlaceHolder的两种实现方式

placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 如 1 <input type="text" name="loginName" placeholder="邮箱/手机号/QQ号"> 目前浏览器的支持情况 浏览器 IE6/7/8/9 IE10+ Firefox Chrome Safari  是否支持 NO YES YE

简易版聊天系统实现 Socket VS NIO两种实现方式

说是简单聊天系统,压根不能算是一个系统,顶多算个雏形.本文重点不在聊天系统设计和实现上,而是通过实现类似效果,展示下NIO 和Socket两种编程方式的差异性.说是Socket与NIO的编程方式,不太严谨,因为NIO的底层也是通过Socket实现的,但又想不出非常好的题目,就这样吧. 主要内容 Socket方式实现简易聊天效果 NIO方式实现简易聊天效果 两种方式的性能对比 前言 预期效果,是客户端之间进行"广播"式聊天,类似于QQ群聊天.希望以后有机会,以此简易版为基础,不断演进,演