当前位置: 首页 > 知识库问答 >
问题:

什么是Spark中的驱动内存和执行器内存?[副本]

澹台浩广
2023-03-14

我是一个新的spark框架,我想知道什么是驱动内存和执行器内存?从两者中获得最大性能的有效方法是什么?

共有1个答案

孟茂
2023-03-14

Spark需要一个驱动程序来处理执行程序。所以最好的理解方式是:

驱动程序

负责处理代码的主要逻辑、通过纱获取资源、处理分配以及处理某些类型逻辑的少量数据的人。驱动内存与您将检索多少数据到主机以处理某些逻辑有关。如果使用rdd.collection()检索太多数据,则驱动程序将耗尽内存。驱动程序的内存通常很小,如果不发送太多数据,2GB到4GB就足够了。

告诉你每种情况下适当的内存数量都取决于你的工作将如何工作。您需要了解每个功能的影响是什么,并需要监控为每个作业调优您的内存使用情况。也许每个工人2GB才是你需要的,但有时每个工人8GB才是你需要的。

 类似资料:
  • null null 为了进行简单的开发,我使用在独立集群模式下(8个工作者、20个内核、45.3G内存)执行了我的Python代码。现在我想为性能调优设置执行器内存或驱动程序内存。 在Spark文档中,执行器内存的定义是 每个执行程序进程使用的内存量,格式与JVM内存字符串相同(例如512M、2G)。

  • 我是Spark的初学者,我正在运行我的应用程序,从文本文件中读取14KB的数据,执行一些转换和操作(收集、收集AsMap),并将数据保存到数据库 我在我的macbook上本地运行它,内存为16G,有8个逻辑核。 Java最大堆设置为12G。 这是我用来运行应用程序的命令。 bin/spark-submit-class com . myapp . application-master local[*

  • 我正在对YARN上的Spark作业进行一些内存调优,我注意到不同的设置会给出不同的结果,并影响Spark作业运行的结果。但是,我很困惑,不明白为什么会这样,如果有人能给我一些指导和解释,我会很感激。 我将提供一些背景资料和张贴我的问题和描述案例,我已经经历了他们在下面。 我的环境设置如下: 存储器20G,每个节点20个vCore(共3个节点) Hadoop 2.6.0 火花1.4.0 我的代码对R

  • 我是否正确理解了客户端模式的文档? 客户端模式与驱动程序在应用程序主程序中运行的集群模式相反? 在客户端模式下,驱动程序和应用程序主程序是独立的进程,因此+必须小于计算机的内存? 在客户端模式下,驱动程序内存不包括在应用程序主内存设置中吗?

  • 我在纱线簇(HDP 2.4)中使用Spark,设置如下: 1主节点 64 GB RAM(48 GB可用) 12核(8核可用) 每个64 GB RAM(48 GB可用) 每个12核(8核可用) null

  • 我已经将spark.executor.memory设置为2048M,在UI“环境”页面中,我可以看到这个值已经设置正确。但是在“executors”页面中,我看到只有一个executor,它的内存是265.4MB。非常奇怪的价值。为什么不是256MB,或者就像我设定的那样?