• Spark on Yarn 流程


    有两种模式:cluster 和 driver

    区别:

    cluster 模式:Driver 程序在 YARN 中运行,应用的运行结果不能在客户端显示,所以最好运行那些将结果最终保存在外部存储介质(如 HDFS、Redis、Mysql)而非 stdout 输出的应用程序,客户端的终端显示的仅是作为 YARN 的 job的简单运行状况。

    client 模式:Driver 运行在 Client 上,应用程序运行结果会在客户端显示,所有适合运行结果有输出的应用程序(如

    spark-shell)

    Cluster 模式流程:

    Spark Driver 首先作为一个 ApplicationMaster 在 YARN 集群中启动,客户端提交给 ResourceManager 的每一个 job 都会在集群的 NodeManager 节点上分配一个唯一的 ApplicationMaster,由该 ApplicationMaster 管理全生命周期的应用。

    具体过程:

    1. 由 client 向 ResourceManager 提交请求,并上传 jar 到 HDFS 上

    这期间包括四个步骤:

    a).连接到 RM

    b).从 RM 的 ASM(ApplicationsManager )中获得 metric、queue 和 resource 等信息。

    c). upload app jar and spark-assembly jar

    d).设置运行环境和 container 上下文(launch-container.sh 等脚本)

    2. ResouceManager 向 NodeManager 申 请 资 源 , 创 建 Spark ApplicationMaster ( 每 个 SparkContext 都 有 一 个ApplicationMaster)

    3. NodeManager 启动 ApplicationMaster,并向 ResourceManager AsM 注册

    4. ApplicationMaster 从 HDFS 中找到 jar 文件,启动 SparkContext、DAGscheduler 和 YARN Cluster Scheduler

    5. ResourceManager 向 ResourceManager AsM 注册申请 container 资源

    6. ResourceManager 通知 NodeManager 分配 Container,这时可以收到来自 ASM 关于 container 的报告。(每个 container对应一个 executor)

    7. Spark ApplicationMaster 直接和 container(executor)进行交互,完成这个分布式任务。

    如果使用 spark on yarn 提交任务,一般情况,都使用 cluster 模式,该模式,Driver 运行在集群中,其实就是运行在ApplicattionMaster 这个进程成,如果该进程出现问题,yarn 会重启 ApplicattionMaster(Driver),SparkSubmit 的功能就是为了提交任务。

     

  • 相关阅读:
    drf序列化组件之视图家族
    drf请求模块分析
    初识web API接口及Restful接口规范
    Vue与Django前后台分离跨域配置
    vue使用一些外部插件及样式的配置
    Linux(Ubuntu)下面SecureCRT 完全破解
    EDS 14.0 dtc:commmand not found
    sopcinfo路径改变,nios工程该怎么办?
    软件实现的施密特触发器
    一定要上的网站
  • 原文地址:https://www.cnblogs.com/tesla-turing/p/12719012.html
Copyright © 2020-2023  润新知