zoukankan      html  css  js  c++  java
  • 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 的功能就是为了提交任务。

     

  • 相关阅读:
    Silverlight Binding之ConverterParameter
    .Net 深克隆与浅克隆实践笔记
    oracle中的锁机制
    .Net生成GUID号
    微软经典面试题之一——16个硬币问题
    C# string.Format 与+性能比较
    c#实现最简快速排序,你绝对可以看懂
    hdu 1204 糖果大战
    hdu 1166 敌兵布阵
    nyoj 7 喷水装置一
  • 原文地址:https://www.cnblogs.com/tesla-turing/p/12719012.html
Copyright © 2011-2022 走看看