• Spark Driver


    关于driver

    用户提交的应用程序代码在spark中运行起来就是一个driver,用户提交的程序运行起来就是一个driver,
    他是一个一段特殊的excutor进程,这个进程除了一般excutor都具有的运行环境外,这个进程里面运行着
    DAGscheduler Tasksheduler Schedulerbackedn等组件。

    这段计算π值的程序代码在spark上运行起来就是一个driver,可以看到这段程序里有个main函数,它是整个应用程序的开始,
    也可以看到在这段代码中创建了context,这样与官网给的解释就完全对上了。

    一个应用程序是如何与一个driver一一对应的呢?
    在worker.scala中我们找到了创建driver的代码,一步步往上追溯就能发现一个Driver如何与一个应用程序一一对应起来的

    driver做什么
    1)运行应用程序的main函数
    2)创建spark的上下文
    3)划分RDD并生成有向无环图(DAGScheduler)
    4)与spark中的其他组进行协调,协调资源等等(SchedulerBackend)
    5)生成并发送task到executor(taskScheduler)
    driver运行在哪里(在这里只讨论yarn模式)
    There are two deploy modes that can be used to launch Spark application on Yarn.In cluster mode,
    the Spark driver run inside an application master process.And in the client mode,the driver runs in the client process.

    yarn-cluster模式下,client将用户程序提交到到spark集群中就与spark集群断开联系了,此时client将不会发挥其他任何作用,仅仅负责提交。
    在此模式下。AM和driver是同一个东西,但官网上给的是driver运行在AM里,可以理解为AM包括了driver的功能就像Driver运行在AM里一样,
    此时的AM既能够向AM申请资源并进行分配,又能完成driver划分RDD提交task等工作

    yarn-client模式下

    yarn-client模式下,Driver运行在客户端上,先有driver再用AM,此时driver负责RDD生成、task生成和分发,向AM申请资源等 ,AM负责向RM申请资源,
    其他的都由driver来完成.

    总结
    用户提交的程序运行起来就是一个driver,他是一个一段特殊的excutor进程,这个进程除了一般excutor都具有的运行环境外,
    这个进程里面运行着DAGscheduler Tasksheduler Schedulerbackedn等组件

    yarn-Cluster模式下driver运行在AM里,这个AM既完成划分RDD生成有向无环图提交task等任务也负责管理与这个application运行有关的executor

    yarn-Client模式下由AM负责管理excutor其余的由driver完成。

  • 相关阅读:
    [Android 4.4.4] 泛泰A850 三版通刷 Mokee4.4.4 KTU84P 20140626 RC2.2 by syhost
    YUV12(420) (from)to RGB24
    Python图像处理(16):图像金字塔
    内存管理笔记(分页,分段,逻辑地址,物理地址)【转】
    Linux内核分析--内核中的数据结构双向链表【转】
    标准IO与文件IO 的区别【转】
    Linux中设备号及设备文件【转】
    静态编译和动态编译的区别【转】
    嵌入式系统 Boot Loader 技术内幕【转】
    理解 Linux 的硬链接与软链接【转】
  • 原文地址:https://www.cnblogs.com/songyuejie/p/15724844.html
Copyright © 2020-2023  润新知