Apache spark spark中驱动程序和应用程序管理器的区别是什么

Apache spark spark中驱动程序和应用程序管理器的区别是什么,apache-spark,hadoop,yarn,Apache Spark,Hadoop,Yarn,我无法理解Spark驱动程序和应用程序主控程序之间的区别。基本上是运行应用程序的责任,谁做什么 在客户端模式下,客户端计算机在其中一个群集节点中运行驱动程序和应用程序主机。在集群模式下,客户端在同一节点(其中一个集群节点)中没有任何、驱动程序和应用程序主运行 driver和app master的具体操作是什么 参考资料: 根据spark文档 火花驱动器: 驱动程序(又名驱动程序)负责转换用户 应用到更小的执行单元,称为任务,然后是调度 它们将与执行器上的群集管理器一起运行。司机也是 负责执

我无法理解Spark驱动程序和应用程序主控程序之间的区别。基本上是运行应用程序的责任,谁做什么

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

driver和app master的具体操作是什么

参考资料:


根据spark文档

火花驱动器:

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

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

主应用程序在哪里

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

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

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

在客户机中,模式驱动程序将在执行/运行spark应用程序/作业的机器上运行,AM在其中一个群集节点上运行

(及)

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

参考资料:

https://luminousmen.com/post/spark-anatomy-of-spark-application#:~:text=%20驱动程序(又名%20驱动程序%20程序,状态%2结果%20到%20用户)


)%20在%20上%20已获得%20个容器。

因此,在群集模式下,驱动程序和AM在同一节点或不同节点上运行(都是群集中的执行器节点)?如果是同一个节点,这有什么意义(它不会增加单个容器上的负载吗)?由于客户端模式支持它们在单独的节点(客户端-驱动程序,执行器节点-AM)中运行,所以我更新了答案。在集群模式下,驱动程序在应用程序主程序内部运行……它不会增加单个容器上的负载吗?不,一点也不。它们是非常轻量级的线程,许多较难的任务都是在执行器中完成的。如果您有任何阶段涉及到将数据收集到主容器,如使用collect()或collectAsList(),则会产生影响,您需要调整并增加驱动程序执行器内存。。否则,大多数时候这根本不是问题。