原创

深入了解YARN Cluster模式


  1. 执行脚本提交任务,实际是启动一个SparkSubmit的JVM进程;SparkSubmit类中的main方法反射调用YarnClusterApplication的main方法,YarnClusterApplication创建Yarn客户端,然后向Yarn服务器发送执行指令:bin/java ApplicationMaster;

  2. Yarn框架收到指令后会在指定的NM中启动ApplicationMaster;

  3. ApplicationMaster启动Driver线程,执行用户的作业;

  4. AM向RM注册,申请资源;

  5. RM返回资源可用列表

  6. 获取资源后AM向NM发送指令:bin/java YarnCoarseGrainedExecutorBackend;

  7. CoarseGrainedExecutorBackend进程会接收消息,跟Driver通信,注册已经启动的Executor;然后启动计算对象Executor等待接收任务

  8. Driver线程继续执行完成作业的调度和任务的执行。

  9. Driver分配任务并监控任务的执行。

注意:SparkSubmit、ApplicationMaster和CoarseGrainedExecutorBackend是独立的进程;Driver是独立的线程;Executor和YarnClusterApplication是对象。

image-20210621204458229

Spark
  • 作者:刘智豪(联系作者)
  • 发表时间:2021-03-21
  • 版权声明:自由转载-非商用-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论