【问题标题】:What is the difference between Driver and Application manager in sparkspark中Driver和Application manager有什么区别
【发布时间】:2023-03-12 19:35:01
【问题描述】:

我无法弄清楚 Spark 驱动程序和应用程序主控之间有什么区别。基本上是运行应用程序的职责,谁来做什么?

在客户端模式下,客户端计算机在其中一个集群节点中运行驱动程序和应用程序主节点。在集群模式下,客户端没有任何,驱动程序和应用程序主运行在同一个节点(集群节点之一)。

driver和app master具体做了哪些操作?

参考资料:

【问题讨论】:

    标签: apache-spark hadoop hadoop-yarn


    【解决方案1】:

    根据火花文档

    火花驱动器:

    驱动程序(又名驱动程序)负责转换用户 应用于称为任务的较小执行单元,然后调度 它们与执行器上的集群管理器一起运行。司机也是 负责执行 Spark 应用程序并返回 使用状态/结果r.

    Spark Driver 包含各种组件——DAGScheduler, TaskScheduler、BackendScheduler 和 BlockManager。他们有责任 用于将用户代码转换为实际执行的 Spark 作业 集群。

    Application Master 在哪里

    Application Master 负责执行单个 应用。 它从资源调度器请求容器 (资源管理器)并在获得的容器上执行特定程序。 Application Master 只是一个代理,它与资源管理器协商资源,然后在获得一些容器后确保在容器上启动任务(从调度程序队列中挑选)。

    简而言之,驱动程序会将您的自定义逻辑转换为阶段、作业和任务。您的应用程序主控将确保从 RM 获得足够的资源,并确保检查您在容器中运行的任务的状态。

    正如您在提供的参考资料中已经说过的,客户端和集群模式之间的唯一区别是

    在客户端,模式 driver 将在我们执行/运行 spark 应用程序/作业的机器上运行,并且 AM 在集群节点之一中运行。

    (与)

    在集群模式下,驱动程序运行在应用程序主控中,这意味着应用程序有更多的责任。

    参考资料:

    https://luminousmen.com/post/spark-anatomy-of-spark-application#:~:text=The%20Driver(aka%20driver%20program,status%2Fresults%20to%20the%20user.

    https://www.edureka.co/community/1043/difference-between-application-master-application-manager#:~:text=The%20Application%20Master%20is%20responsible,class)%20on%20the%20obtained%20containers。

    【讨论】:

    • 那么在集群模式下,driver和AM运行在同一个节点还是不同节点(都是集群中的executor节点)?如果是同一个节点,那有什么意义(它不会增加单个容器的负载)吗?由于客户端模式支持它们在单独的节点中运行(客户端-驱动程序,执行程序节点-AM)
    • 我已经更新了答案。并且在集群模式下,驱动程序在应用程序主机内运行......它不会增加单个容器的负载吗?不,它们是非常轻量级的线程,许多更难的任务都在执行器中完成。
    • 如果您有任何阶段涉及将数据收集到主容器,例如使用 collect() 或 collectAsList(),那么它会产生影响,您需要调整和增加驱动程序执行器内存.. 否则大多数时间根本不是问题。
    猜你喜欢
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2012-04-09
    相关资源
    最近更新 更多