spark的三种模式的详细运行过程
来源:互联网 发布:台湾中华电信网络制式 编辑:程序博客网 时间:2024/06/11 03:00
spark的三种模式的详细运行过程
http://blog.csdn.net/do_what_you_can_do/article/details/53128480
一、Standalone模式
1、使用SparkSubmit提交任务的时候(包括Eclipse或者其它开发工具使用new SparkConf()来运行任务的时候),Driver运行在Client;使用SparkShell提交的任务的时候,Driver是运行在Master上
2、使用SparkSubmit提交任务的时候,使用本地的Client类的main函数来创建sparkcontext并初始化它;
3、SparkContext连接到Master,注册并申请资源(内核和内存)。
4、Master根据SC提出的申请,根据worker的心跳报告,来决定到底在那个worker上启动StandaloneExecutorBackend(executor)
5、executor向SC注册
6、SC将应用分配给executor,
7、SC解析应用,创建DAG图,提交给DAGScheduler进行分解成stage(当出发action操作的时候,就会产生job,每个job中包含一个或者多个stage,stage一般在获取外部数据或者shuffle之前产生)。然后stage(又称为Task Set)被发送到TaskScheduler。TaskScheduler负责将stage中的task分配到相应的worker上,并由executor来执行
8、executor创建Executor线程池,开始执行task,并向SC汇报
9、所有的task执行完成之后,SC向Master注销
二、yarn client
1、Spark-submit脚本提交,Driver在客户端本地运行;
2、Client向RM申请启动AM,同时在SC(client上)中创建DAGScheduler和TaskScheduler。
3、RM收到请求之后,查询NM并选择其中一个,分配Container,并在container中开启AM
4、client中的SC初始化完成之后,与AM进行通信,向RM注册,根据任务信息向RM申请资源
5、AM申请到资源之后,与AM进行通信,要求在它申请的container中开启CoarseGrainedExecutorBackend(executor)。Executor在启动之后会向SC注册并申请task
6、SC分配task给executor,executor执行任务并向Driver(运行在client之上的)汇报,以便客户端可以随时监控任务的运行状态
7、任务运行完成之后,client的SC向RM注销自己并关闭自己
三、yarn cluster
1、spark-submit脚本提交,向yarn(RM)中提交ApplicationMaster程序、AM启动的命令和需要在Executor中运行的程序等
2、RM收到请求之后,选择一个NM,在其上开启一个container,在container中开启AM,并在AM中完成SC的初始化
3、SC向RM注册并请求资源,这样用户可以在RM中查看任务的运行情况。RM根据请求采用轮询的方式和RPC协议向各个NM申请资源并监控任务的运行状况直到结束
4、AM申请到资源之后,与对应的NM进行通信,要求在其上获取到的Container中开启CoarseGrainedExecutorBackend(executor),executor 开启之后,向AM中的SC注册并申请task
5、AM中的SC分配task给executor,executor运行task兵向AM中的SC汇报自己的状态和进度
6、应用程序完成之后(各个task都完成之后),AM向RM申请注销自己兵关闭自己
- spark的三种模式的详细运行过程
- spark的三种模式的详细运行过程
- Spark的运行模式
- Spark的运行模式
- Spark的运行模式
- spark程序的运行过程
- Spark的4种运行模式
- Spark的四种运行模式
- Spark的几种运行模式
- spark的运行模式总结
- spark的yarn模式运行
- Spark的运行模式及运行命令
- Spark standalone下的运行过程
- Spark的四种运行模式(1.2.1)
- Spark的几种运行模式及shell测试
- Spark 2.1.0的运行模式
- spark on yarn 的运行模式
- spark 运行模式的简单总结
- 历届试题 大臣的旅费
- MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
- 用户DSN、系统DSN、文件DSN的区别
- C++实验6:项目3—矩阵求和
- Mysql 常见时间函数整理
- spark的三种模式的详细运行过程
- 刷微信步数,运动排名
- 初学者对java数组中栈和堆的认识
- RxBus 基于 RxJava1.x 实现消息传递机制
- Spark性能优化指南——基础篇
- android中布局和View创建的源码分析---setContentView
- Maven学习总结(15)——深入理解Maven相关配置
- 使用HDC画音频波形图
- 测试一篇博客