美文网首页Hadoop
面试 | Spark知识点@2019-01-06

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

作者: digger30 | 来源:发表于2019-01-06 20:03 被阅读16次

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

    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模式运行架构原理解析

    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申请注销并关闭自己

    相关文章

      网友评论

        本文标题:面试 | Spark知识点@2019-01-06

        本文链接:https://www.haomeiwen.com/subject/bgcerqtx.html