Spark面试:Spark on yarn 运行流程

一:
Spark on YARN能让Spark计算模型在云梯YARN集群上运行,直接读取云梯上的数据,并充分享受云梯YARN集群丰富的计算资源。
二:
基于YARN的Spark作业首先由客户端生成作业信息,提交给ResourceManager,
ResourceManager在某一 NodeManager汇报时把AppMaster分配给NodeManager,
NodeManager启动 SparkAppMaster,SparkAppMaster启动后初始化作业,
向ResourceManager申请资源,申请到相应资源后 SparkAppMaster通过RPC让NodeManager启动相应的SparkExecutor,
SparkExecutor向 SparkAppMaster汇报并完成相应的任务
SparkClient会通过AppMaster获取作业运行状态。
三:
driver 运行在集群中(cluster模式)
1、client 向 yarn 提交一个job
2、ResouceManager 为该job在某个 NodeManager 上分配一个 ApplicationMaster,NM启动AppMaster,Appmaster 启动 driver
3、ApplicationMaster 启动后完成初始化作业,driver 生成一系列task
4、AM 向 RM 申请资源,RM 返回 Executo r信息
5、AM 通过 rpc 启动相应的 sparkExecutor
6、Driver 向 Executor 分配 task
7、Executor 执行结果写入文件或返回 driver 端

在这里插入图片描述

四:
driver运行在client端
1、客户端启动后直接运行应用程序,直接启动 driver
2、driver 初始化并生成一系列 task
3、客户端将 job 发布到 yarn 上
4、RM 为该job 在某个 NM 分配一个 AM
5、AM 向 RM 申请资源,RM 返回Executor 信息
6、AM 通过 RPC 启动相应的 SparkExecutor
7、Driver 向 Executor 分配 task
8、Executor 执行task 并将结果写入第三方存储系统或者 Driver 端

在这里插入图片描述

五:对比总图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43688472/article/details/85246304