解析:
1)客⼾端client向ResouceManager提交Application,ResouceManager接受Application
并根据集群资源状况选取⼀个node来启动Application的任务调度器driver(ApplicationMaster)
2)ResouceManager找到那个node,命令其该node上的nodeManager来启动⼀个新的
JVM进程运⾏程序的driver(ApplicationMaster)部分,driver(ApplicationMaster)启动时会⾸先向ResourceManager注册,说明由⾃⼰来负责当前程序的运⾏
3)driver(ApplicationMaster)开始下载相关jar包等各种资源,基于下载的jar等信息决定向ResourceManager申请具体的资源内容。
4)ResouceManager接受到driver(ApplicationMaster)提出的申请后,会最⼤化的满⾜
资源分配请求,并发送资源的元数据信息给driver(ApplicationMaster);
5)driver(ApplicationMaster)收到发过来的资源元数据信息后会根据元数据信息发指令给具体
机器上的NodeManager,让其启动具体的container。
6)NodeManager收到driver发来的指令,启动container,container启动后必须向driver(ApplicationMaster)注册。
7)driver(ApplicationMaster)收到container的注册,开始进⾏任务的调度和计算,直到
任务完成。
补充:如果ResourceManager第⼀次没有能够满⾜driver(ApplicationMaster)的资源请求
,后续发现有空闲的资源,会主动向driver(ApplicationMaster)发送可⽤资源的元数据信息
以提供更多的资源⽤于当前程序的运⾏。
Yarn中的container是由谁负责销毁的,在Hadoop Mapreduce中container可以复⽤么?
解析:
答:ApplicationMaster负责销毁,在Hadoop Mapreduce不可以复⽤,在spark on yarn程序container可以复⽤
提交任务时,如何指定Spark Application的运⾏模式?
解析:
1)cluster模式:./spark-submit --class xx.xx.xx --master yarn --deploy-mode cluster xx.jar
2) client模式:./spark-submit --class xx.xx.xx --master yarn --deploy-mode client xx.jar
不启动Spark集群Master和work服务,可不可以运⾏Spark程序?
解析:
答:可以,只要资源管理器第三⽅管理就可以,如由yarn管理,spark集群不启动也可以使⽤spark;spark集群启动的是work和master,这个其实就是资源管理框架,yarn中的
resourceManager相当于master,NodeManager相当于worker,做计算是Executor,和spark集群的work和manager可以没关系,归根接底还是JVM的运⾏,只要所在的JVM上安装了spark
就可以。
解析:
www.aboutyun.com/thread-24246-1-1.html 24/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
答:收集Spark作业运⾏的信息