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的安全认证。
 
参考:

最新文章

  1. c++ 接口和抽象类
  2. 分辨率、DPI、PPI和屏幕尺寸,你都知道是啥么?
  3. kuangbin_SegTree D (POJ 2528)
  4. bootstrap-carousel
  5. 2015年毕业生收到的offer和薪资透露
  6. 序列化和反序列化的几种方式(DataContractSerializer)(二)
  7. 微信分组群发45028,微信分组群发has no masssend quota hint
  8. 异步socket大并发实现
  9. shell脚本学习(五)
  10. js中常见的一些兼容性问题
  11. [HDU3247]Resource Archiver
  12. Django表单字段汇总
  13. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 连接数据库执行SQL语句
  14. 【转】一个 Linux 上分析死锁的简单方法
  15. SVN上线步骤笔记
  16. JS脚本获取开发者后台所有Device
  17. yii2redis安装
  18. 根据 WBS 列新 PID 数据
  19. Python:如何排序(sort)
  20. 我的HTML总结之HTML发展史

热门文章

  1. 用opencv检测人眼并定位瞳孔位置
  2. 通过自动回复机器人学Mybatis:MySQL脚本 + db >> dao >> service >> servlet
  3. pyDay12
  4. INNODB存储引擎表空间
  5. 微信小程序:本地资源图片无法通过 WXSS 获取,可以使用网络图片或者 base64或者使用image标签
  6. JAVA面试题整理(7)-Redis
  7. kotlin 学习感受
  8. win10不能上网问题的解决办法
  9. 快递100API接口调用代码示例
  10. arcgis api for silverlight开发系列之二:缓存图层与动态图层及图层总结 .