• 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