面试 | Spark知识点@2019-01-06

Spark应用Yarn-Client模式运行架构原理解析

《面试 | Spark知识点@2019-01-06》 image

  • Spark Yarn Client向Yarn的ResourceManager申请启动ApplicationMaster。同时在SparkContext初始中将创建DAGScheduler和TaskScheduler等,由于是Yarn-Client模式,程序会选择YarnClientClusterScheduler和YarnClientSchedulerBackedn
  • ResourceManager收到请求后,在集群中选择一个NodeManager,为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的ApplicationMaster
  • Client中的SparkContext初始化完毕之后,与ApplicationMaster建立通讯,向ResourceManager注册,根据任务信息向ResourceManager申请资源(Container)
  • 一旦ApplicationMaster申请到资源(也就是Container)后,便与对应的NodeManager通信,要求它在获得的Container中启动CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend启动后会向Client中的SparkContext注册并申请Task
  • Client中的SparkContext分配Task给CoarseGrainedExecutorBackend执行,CoarseGrainedExecutorBackend运行Task并向Driver汇报运行的状态和进度,以让Client随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务
  • 应用程序运行完成后,Client的SparkContext向ResourceManager申请注销并关闭自己

Spark应用Yarn-Cluster模式运行架构原理解析

《面试 | Spark知识点@2019-01-06》 image

  • Spark Yarn Client向Yarn中提交应用程序,包括ApplicationMaster程序,启动ApplicationMaster命令、需要在Executor中运行的程序等
  • ResourceManager收到请求后,在集群中选择一个NodeManager,为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的ApplicationMaster,其中ApplicationMaster进行SparkContext等的初始化
  • ApplicationMaster向ResourceManager注册,这样用户可以直接通过ResourceManager查询应用程序的运行状态,然后它将采用轮询的方式通过RPC协议为各个任务申请资源,并监控他们的运行状态直到运行结束
  • 一旦ApplicationMaster申请到资源(也就是Container)后,便与对应的NodeManager通信,要求它在获得的Container中启动CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend启动后会向ApplicationMaster中的SparkContext注册并申请Task
  • ApplicationMaster中的SparkContext分配Task给CoarseGrainedExecutorBackend执行,CoarseGrainedExecutorBackend运行Task并向ApplicationMaster汇报运行的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务
  • 应用程序运行弯沉够,ApplicationMaster向ResourceManager申请注销并关闭自己
    原文作者:digger30
    原文地址: https://www.jianshu.com/p/66ff1defc856
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞