首页 > 代码库 > spark on yarn 执行过程介绍

spark on yarn 执行过程介绍

执行语句:

sudo spark-submit --master yarn--driver-memory 7G --executor-memory 5G --executor-cores 24 --num-executors 4--class spark.init.InitSpark /home/hxf/gogo.jar>/home/hxf/dddd.txt2>&1;


执行过程:

技术分享

技术分享

执行过程简介:

1 通过SecurityManager进行用户权限验证。

2 远程启动一个Actor(实际上就是启动提交程序所在机器上的一个actor),地址是:akka.tcp://sparkDriver@master01.cloudera.pmsc.gov.cn:32900;开启"SparkDriver"服务,端口是32900。

3 通过SparkEnv注册MapOutputTracker\BlockManagerMaster。

4 DiskBlockManager 会在本地创建一个文件夹 /tmp/spark-local-yyyyMMddHHmmss.....,MemoryStore开启一个内存空间(我的是2.1GB)。

5 HTTPFileServer 会在本地创建一个文件夹/tmp/xxx。启动HttpServer,开启“HTTP file server”服务,服务端口是43095.开启“SparkUI”服务,服务端口是4040.

6 SparkContext 加载自己的jar(我的所有的东东都在gogo.jar)

7 通过RMProxy连接到ResourceManager(master01.cloudera.pmsc.gov.cn/10.10.244.131:8032)

8 客户端向集群请求获得一个application,该集群有4个NodeManager

9 客户端验证该条请求请求的内存是否超过了集群的上限(8192MB 每个container)

10 分配一个AM container,该container可用内存:4096MB+384MB

11 为AM准备资源(spark-assembly-1.2.0-cdh5.3.0-hadoop2.5.0-cdh5.3.0.jar)

12 客户端向ResourceManager提交任务

13 AM注册为一个 actor(akka.tcp://sparkYarnAM@datanode01.cloudera.pmsc.gov.cn:52155/user/YarnAM#-1153425007)

14 application 启动

15 BlockManagerMaster注册BlockManager

16 注册Executor

17 创建共享变量

18 切分stage,DAGScheduler提交提交Stage,DAGScheduler提交task

19 开启任务

20 执行任务

21 执行任务完毕

spark on yarn 执行过程介绍