Spark在master node生成DAG之后,将DAG以及map函数,action函数进行打包,还有一个很重的打包内容:如何在worker节点执行。统统打包之后传递给YARN,YARN本身只是负责分配资源,以及将上游应用要执行的内容(spark打的函数包)放在分配的资源里面执行;执行内容他并不知晓;可以是向worker节点监听的某个端口发送指令;可以是执行本地的一个shell脚本等等。
在YARN集群的模式下,并不是container里面的程序访问容器外面的executor,而是每个container里面跑的是就executor;executor来执行Task的业务逻辑。spark自己的Applicatin Master在想YARN的slave Node申请container的时候传递的CLC(Container Lauch Context)其实就是就是一个构建了包含executor的环境。
Spark提交给YARN两种模式,一种是yarn-cluster,另外一种是yarn-client;两者的区别在于Driver执行(以及产生的SparkContext的实例)在什么地方,前者是在Client端,这种方式比较容易调试,多用于测试调试阶段,因为sparkContext在client端,可以看到日志信息;后者Driver的执行实在NodeManager的一个容器中,这意味着yarn-cluster模式下,client向YARN提交一个application之后,就可以什么都不做了(比如选择直接退出),因为driver的运行,DAG的生成以及Scheduler等都是在NodeManager的container里面执行的,和applicationMaster在同一个容器内;
SparkContext的位置的不同导致了后续沟通的不同;因为SparkContext后续是要和container沟通的,yarn-client模式就是yarn集群之外的client和NodeManager里面的executor交互,yarn-cluster则是在集群内部交互。
 
在YARN里面跑的是Executor,每个Executor都是一个进程(不是线程);
 
使用YARN的几点理由:
1. YARN提供了资源队列以及资源池的模式来处理提交的任务;
2. spark standalone模式,要求每个application一个executor;YARN可以让你选择executor的数量;
3. YARN未来将会实现container的动态伸缩(现在还不支持https://issues.apache.org/jira/browse/YARN-1197),可以享受这种YARN才有的资源透明伸缩;
3. 支持认证,基于Kerberos的安全认证。
 
参考:

Spark和YARN的更多相关文章

  1. Spark on YARN的部署

    Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...

  2. 配置Spark on YARN集群内存

    参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 运行文件有几个G大,默 ...

  3. Spark on Yarn 学习(一)

    最近看到明风的关于数据挖掘平台下实用Spark和Yarn来做推荐的PPT,感觉很赞,现在基于大数据和快速计算方面技术的发展很快,随着Apache基金会上发布的一个个项目,感觉真的新技术将会不断出现在大 ...

  4. Spark on Yarn:任务提交参数配置

    当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行.Spark可以使得多个Tasks在同一个容器里面运行. 以下参数配置为例子: spark-submit -- ...

  5. 运行 Spark on YARN

    运行 Spark on YARN Spark 0.6.0 以上的版本添加了在yarn上执行spark application的功能支持,并在之后的版本中持续的 改进.关于本文的内容是翻译官网的内容,大 ...

  6. Spark On YARN使用时上传jar包过多导致磁盘空间不够。。。

    今天测试过程中发现YARN Node变成Unhealthy了,后来定位到硬盘空间不够..... 通过查找大于100M的文件时发现有N多个spark-assembly-1.4.0-SNAPSHOT-ha ...

  7. Spark on YARN两种运行模式介绍

    本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发)   问题导读 1.Spark ...

  8. Spark源码系列(七)Spark on yarn具体实现

    本来不打算写的了,但是真的是闲来无事,整天看美剧也没啥意思.这一章打算讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一 ...

  9. Apache Spark源码走读之8 -- Spark on Yarn

    欢迎转载,转载请注明出处,徽沪一郎. 概要 Hadoop2中的Yarn是一个分布式计算资源的管理平台,由于其有极好的模型抽象,非常有可能成为分布式计算资源管理的事实标准.其主要职责将是分布式计算集群的 ...

  10. Spark on Yarn

    Spark on Yarn 1. Spark on Yarn模式优点 与其他计算框架共享集群资源(eg.Spark框架与MapReduce框架同时运行,如果不用Yarn进行资源分配,MapReduce ...

随机推荐

  1. 离线安装Cloudera Manager5.2.0和CDH5 2.0

    第一次安装出现了各种问题,尤其是对于不是太熟悉linux系统的更是头疼不已呀!特此记录一下,希望能够让小伙伴们少走点弯路. 1.给机器添加路由 (根据自己的机器情况,可以忽略)   route add ...

  2. php 用户向微信发送信息

    1:制作微信菜单栏 <?phpheader("Content-type: text/html; charset=utf-8");function request_post($ ...

  3. STM32端口输入输出模式配置

    STM32的IO口模式配置 根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是: 四种输入模式 上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平. 下拉输入:把电 ...

  4. linux第五周

    第五周 给MenuOS增加time和time-asm命令 更新menu代码到最新版 在main函数中增加MenuConfig 增加对应的Time函数和TimeAsm函数 make rootfs 使用g ...

  5. 数据库常见的三种join方式

    数据库常见的join方式有三种:inner join, left outter join, right outter join(还有一种full join,因不常用,本文不讨论).这三种连接方式都是将 ...

  6. about SpringBoot学习后记

    <SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框 ...

  7. 解决 vim 乱码

    打开vim安装目录下的_vimrc,在头部加上几句配置语句就能搞定: //设置默认编码 set encoding=utf-8 set fileencodings=utf-8,chinese,latin ...

  8. 【Python】xlrd,NotImplementedError-formatting_info=True not yet implemented

    前言 Python需要读取Excel(.xls..xlsx)时通常使用xlrd模块:如果要对其内容进行编辑的话稍稍有些麻烦,通常的做法是使用xlutils的copy模块对原文件进行复制,然后保存成新的 ...

  9. Angel 实现FFM 一、对于Angel 和分布式机器学习的简单了解

    Angel是腾讯开源的一个分布式机器学习框架.是一个PS模式的分布式机器学习框架. https://github.com/Angel-ML/angel   这是github地址. 我了解的分布式机器学 ...

  10. 论integer是地址传递还是值传递(转)

    原文链接:http://blog.csdn.net/witsmakemen/article/details/46874717 论integer是地址传递还是值传递 Integer 作为传参的时候是地址 ...