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. C++ 把文件路径中的单斜杠“\”换成双斜杠“\\”

    <pre name="code" class="cpp"> #include <iostream> #include <strin ...

  2. IP地址与MAC地址

    作者:知乎用户链接:https://www.zhihu.com/question/21546408/answer/28155896来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. OpenCV中的新函数connectedComponentsWithStats使用

    主要内容:对比新旧函数,用于过滤原始图像中轮廓分析后较小的区域,留下较大区域. 关键字    :connectedComponentsWithStats 在以前,常用的方法是"是先调用 cv ...

  4. linux第七周

    可执行程序的装载 一.预处理.编译.链接和目标文件的格式 可执行文件的创建——预处理.编译和链接 cd Code vi hello.c gcc -E -o hello.cpp hello.c -m32 ...

  5. Kali视频学习21-25

    Kali视频学习21-25 (21)密码攻击之在线攻击工具 一.cewl可以通过爬行网站获取关键信息创建一个密码字典. 二.CAT (Cisco-Auditing-Tool)很小的安全审计工具,扫描C ...

  6. JS判定注册表单的几个方式 及 Ajax进行用户名存在判定

    最近感觉不赶紧把代码逻辑记一下梳理一下,再做的时候就容易进入"逻辑误区". 有个表单,简单点. <!DOCTYPE html> <!-- 注册表单验证,用户名格式 ...

  7. java分布式系统开关功能设计(服务升降级)

     ​问题一:在单个java系统中如何实现开关功能? ​    ​其实对于开关来说,对应Java中的类型,很好映射,就是一个boolean值,在需要做开关操作的地方,调用这个属性,判断状态,然后走相应的 ...

  8. install ros-indigo-map-msgs

    CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake: (find_package): Could not fi ...

  9. zookeeper和Eureka对CAP理论的支持

    著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.在此Zookeeper保证 ...

  10. vue双向数据绑定最最最最最简单直观的例子

    vue双向数据绑定最最最最最简单直观的例子 一.总结 一句话总结:双向绑定既不仅model可以影响view的数据,view也可以影响model的数据 view model 数据 1.vue双向数据绑定 ...