大数据IMF传奇行动绝密课程第21课:从Spark架构中透视Job
2016-08-03 20:39
323 查看
从Spark架构中透视Job
1、通过案例观察Spark架构2、手动绘制Spark内部架构
3、Spark Job的逻辑视图解析
4、Spark Job的物理视图解析
spark粗粒度
Spark主从分布:
Master
Worker
在配置文件spark-env.sh中有内存、core的配置
spark-shell默认情况下没有任何job
Executors个数有5个,其中4个在worker中,driver也是一个Executor进程。
当前的spark application分配一个ExecutorBackend进程
一个Worker上可以有多个Executor,如:cpu利用率不高,可配多个Executor
application关闭Executor才会关闭
spark中,一旦程序启动,无论程序内部有多少作业,都是复用程序注册时获得的资源,具体分配资源的时候默认分配的方式在每个Worker上为当前程序分配一个ExecutorBackend进程,且默认情况下会最大化的使用cores和memory
Worker中,CoarseGrainedExecutorBackend里面有Executor,并发线程池线程复用的方式不断运行Task
在一个Executor中一次性最多能运行多少并发的Task取决于当前Executor能够使用的cores的数量
应对OOM一个方法:多个Executor(如果有其他大数据平台)、增加分片数量(只有spark)
88个任务具体分配给谁主要取决于数据本地性
并行度也是被继承的
由于线程不关心具体Task中运行什么代码,所以Task和Thread是解耦和的,所以Thread是可以被复用的
当Spark集群启动的时候,首先启动Master进程负责整个集群资源的管理和分配,并接受作业的提交,且为作业分配计算资源。每个工作节点默认情况下都会启动一个Worker Process来管理当前结点的Memory、CPU等计算资源,并且向Master汇报Worker还能够正常工作(只是通过心跳),当用户提交作业给Master的时候,Master会为程序分配id,并分配计算资源,默认情况下,会为当前的应用程序在每个Worker Process下面分配一个CoarseGrainedExecutorBackend进程,该进程默认情况下会最大化的使用当前结点上的内存和cpu
整个集群分为Master和Worker结点,Master有Master守护进程,需要管理所有的Worker结点。Worker结点在Worker Node的守护进程会负责管理Executors。Worker Process根据Master的要求来管理资源。从CoarseGrainedExecutorBackend上看,是Worker Process在管理资源
Worker Process管理当前结点的内存和cpu等计算资源,实质上是通过Master来管理每台机器上的计算资源的
Worker节点上有Worker Process。 Worker Process会接受Master的指令为当前要运行的应用程序分配CoarseGrainedExecutorBackend进程
Worker Process 默认情况下和Executor一对一,可以一对多
Stage0是Stage1的Mapper,Stage1是Stage2的Mapper,Stage1是Stage0的Reducer,Stage2是Stage1的Reducer。
Spark是一个更加精致和高效的MapReduce思想的具体实现
最后一个Stage里面的Task是ResultTask类型,前面所有的Stage中Task的类型都是ShuffleMapTask类型
Stage里面的内容一定是在Executor中执行的,而且Stage必须从前往后执行。
Spark的一个应用程序中可以因为一个不同的Action产生众多的Job,每个Job至少有一个Stage
相关文章推荐
- 大数据IMF传奇行动绝密课程第21课:从Spark架构中透视Job
- 大数据IMF传奇行动绝密课程第23课:从物理执行的角度透视Spark Job
- 大数据IMF传奇行动绝密课程第23课:从物理执行的角度透视Spark Job
- 大数据IMF传奇行动绝密课程第13课:Spark内核架构解密
- 大数据IMF传奇行动绝密课程第33课:Spark Executor内幕彻底解密
- 大数据IMF传奇行动绝密课程第19课:Spark高级排序彻底解密
- 大数据IMF传奇行动绝密课程第32课:Spark Worker原理和源码剖析解密
- 大数据IMF传奇行动绝密课程第45课:Spark性能优化第一季
- 大数据IMF传奇行动绝密课程第27课:Spark on Yarn彻底解密
- 大数据IMF传奇行动绝密课程第82课:Spark Streaming案例动手实战并在电光石火间理解其工作原理
- 大数据IMF传奇行动绝密课程第26课:Spark Runtime内幕揭秘
- 大数据IMF传奇行动绝密课程第25课:Spark Sort-Based Shuffle内幕彻底解密
- 大数据IMF传奇行动绝密课程第48课:Spark性能优化第四季
- 大数据IMF传奇行动绝密课程第35课:打通Spark系统运行内幕机制流程循环图
- 大数据IMF传奇行动绝密课程第43课:Spark 1.6 Rpc内幕解密
- 大数据IMF传奇行动绝密课程第25课:Spark Sort-Based Shuffle内幕彻底解密
- 大数据IMF传奇行动绝密课程第31课:Spark资源调度分配内幕天机彻底解密
- 大数据IMF传奇行动绝密课程第12课:HA下的Spark集群工作原理解密
- 大数据IMF传奇行动绝密课程第51课:Spark性能优化第七季
- 大数据IMF传奇行动绝密课程第50课:Spark性能优化第六季