Spark中的内存管理(一)
一个Spark应用运行的过程如下所示:
- Driver
用户的主程序提交到Driver中执行,在Driver中创建SparkContext,SparkContext初始化DAGScheduler和TaskScheduler,作为coordinator负责从AppMaster申请资源,并将作业的Task调度到Executor上面执行。
在yarn-cluster模式下,AppMaster中包含了Driver,在YARN中启动,spark-submit客户端kill掉不影响程序的运行;
在yarn-client模式下,Driver在spark-submit的客户端启动(不在YARN中),跟AppMaster是分离的,spark-submit客户端kill掉会导致Spark程序挂掉(如spark-sql/spark-shell等都是以yarn-c
