- yarn-cluster
- 客户端向yarn提交请求,申请容器启动ApplicationMaster,
- ResourceManager指定Node,作为AM的容器
- AM启动
- 同一个JVM中再启动Driver,获取SparkSession,并向AM注册
- Driver再向AM发请求,申请容器 ,想启动Executor
- AM告诉Driver,在哪个NodeManager上启动容器
- Driver跟NM沟通,启动容器,即 Executor
- Driver收到container的注册,开始进行任务的调度和计算,直到 任务完成。
- yarn-client
- 客户端向yarn提交请求,申请容器启动ApplicationMaster,
- 客户端启动Driver,即Driver一定是在用户提交任务的主机上启动的。
- spark.task.cpus,即每一个task使用几个核,默认是1