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 的功能就是为了提交任务。

     

  • 相关阅读:
    eclipse里打包时排除.svn目录
    UltraEdit搭建python IDE环境+设置快捷键
    Window下 VC2008 Express 配置 OpenGL
    N73 getRGB createRGBImage 透明色的问题
    Iphone UIApplication openURL能帮助你运行Maps,SMS,Browser, Calling甚至其他的应用程序
    Eclipse配置KEmulator
    洛谷P1439 【模板】最长公共子序列 (DP,离散化)
    Codeforces Round #642 (Div. 3) D. Constructing the Array (优先队列)
    Codeforces #6241 div2 C. Orac and LCM (数学)
    洛谷P1469 找筷子 (位运算)
  • 原文地址:https://www.cnblogs.com/tesla-turing/p/12719012.html
Copyright © 2011-2022 走看看