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. 使用cronolog工具给tomcat进行日志切割

    关于cronolog的用法查看:https://www.freebsd.org/cgi/man.cgi?query=cronolog&apropos=0&sektion=0&m ...

  2. Google发布机器学习平台Tensorflow游乐场~带你玩神经网络(转载)

    Google发布机器学习平台Tensorflow游乐场-带你玩神经网络 原文地址:http://f.dataguru.cn/article-9324-1.html> 摘要: 昨天,Google发 ...

  3. 安装etcd集群

    kuberntes 系统使用 etcd 存储所有数据,是最重要的组件之一,注意 etcd集群只能有奇数个节点(1,3,5...),本文档使用3个节点做集群. 一.基础环境 软件包 etcd下载地址:h ...

  4. 【源码学习之spark core 1.6.1 各种部署模式所使用的的TaskSceduler及SchedulerBackend】

    说明:个人原创,转载请说明出处 http://www.cnblogs.com/piaolingzxh/p/5656879.html 未完待续 未完待续

  5. mytabits表关联一对一(多对一?)

    mytabits表关联一对一(多对一?) association联合 联合元素用来处理“一对一”的关系.需要指定映射的Java实体类的属性,属性的javaType(通常MyBatis 自己会识别).对 ...

  6. js做小数运算精度问题

    当js做小数运算时存在bug,大概是因为二进制和十进制转换之间的关系. bug如图 解决方案 1.运算结果后,乘以100再除以100.网上推荐这种方法但是乘以1000再除以1000依然存在精度问题 2 ...

  7. C# DataTable Compute方法的使用

    在开发中需要对DataTable的数据进行处理,比如累加,求最大最小及平均值等,以前都采用手工对DataTable进行循环并计算的方式,现在发现DataTable的Compute方法可以轻松实现这些功 ...

  8. HDU-4336-期望dp-bit

    Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. API To Import Negotiations(转)

    原文地址 API To Import Negotiations

  10. Dubbo原理简介、与Zookeeper整合利用

    官方文档:http://dubbo.io/books/dubbo-user-book/ Dubbo的简单介绍 Dubbo是一个分布式服务框架,架构如图: 节点角色说明: Provider: 暴露服务的 ...