总结

-
MR:在application执行之前不需要先将资源申请完毕,而是直接进行任务调度,每一个task在执行之前自己去申请资源,申请到了就执行,申请不到就继续申请,每一个task执行完毕后后悔自己将申请的资源释放掉。
-
Spark:在Application执行之前,先将所有的资源申请完毕,才会执行任务的调度,直到最后一个task执行完毕,才会释放掉这些资源。
-
Spark SQL CLI就相当于一直开启资源,不释放,Spark Thrift Server也是这个原理。
-
Hive的driver和Spark SQL(client)的driver概念不太一样:
Hive的driver是把SQL解析为MR应用提交到集群上去运行而已,任务调度在ApplicationMaster中,只会返回一个运行结果给client。
spark SQL的driver把SQL解析为Spark应用,还含有DGA和Task调度,以及要和executor进行通信的,可以把数据集中在driver。 -
MR(Hive)的任务调度在ApplicationMaster中,Spark的任务调度在driver(可位于client,也可位于ApplicationMaster)中。
参考文章
Hive Driver 原理
yarn-cluster和yarn-client提交模式的区别
Spark Thrift Server 架构和原理介绍
理解Spark SQL(一)—— CLI和ThriftServer
spark-sql 是否支持 --deploy-mode cluster模式呢?
spark作业调度
hadoop1.0和2.0区别
Spark----资源调度和任务调度流程
191

被折叠的 条评论
为什么被折叠?



