spark中的Driver和Application manager有什么区别

问题描述 投票:0回答:2

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

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

Driver 和 App Master 到底做了哪些操作?

参考资料:

apache-spark hadoop hadoop-yarn
2个回答
8
投票

根据 Spark 文档

火花驱动器:

Driver(又名驱动程序)负责 转换用户 应用程序到称为任务的较小执行单元,然后进行调度 它们与执行器上的集群管理器一起运行。司机也是 负责 执行 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(又名%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 %20获得%20个容器。


0
投票

在集群模式下,Application Master 首先在 YARN 集群内节点上的容器中创建。该驱动程序在 YARN 集群内节点上的容器上单独启动,并与 Application Master 通信以协调 Spark 应用程序的执行。 Application Master 和驱动程序都与 YARN ResourceManager 交互,以在集群内进行资源分配和管理。

© www.soinside.com 2019 - 2024. All rights reserved.