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

谁能让我知道在spark提交作业中如何决定--executor内存和--num-of-executors。核数的概念是什么

桑璞
2023-03-14

如何决定spark提交作业中的--executor内存和--num-of-executors。核数的概念是什么。

集群和客户端部署模式之间的明显区别。如何选择部署模式

共有1个答案

子车凌龙
2023-03-14

问题的第一部分询问--executor-memory--num-executors--num-executor-cores通常取决于Spark应用程序将要执行的任务的种类。

  • Executor Memory指示您希望分配给运行Executor的JVM的物理内存量。价值将取决于您的要求。例如,如果您只想解析一个大的文本文件,那么您所需的内存将比图像处理所需的要少得多。
  • number of executors变量是希望在集群上生成的Executor JVM的数量。同样,这取决于许多因素,如集群大小、集群中的机器类型等
  • 每个执行程序拆分代码并执行tasks中的指令。这些任务在执行器内核(或处理器)中执行。这有助于您在某个执行器内实现并行性,但要确保您不会将计算机的所有内核分配给它的执行器,因为它的正常运行需要一些内核。

关于问题的第二部分,我们在Spark中有两个--deploy-mode,您已经命名了它们,即clusterclient

  • 客户端模式是将外部计算机连接到群集并从该外部计算机运行spark作业时的模式。比如当您将笔记本电脑连接到集群并从集群运行spark-shell时。在您的笔记本电脑中调用驱动程序JVM,一旦您断开笔记本电脑的连接,会话就会被终止。类似于spark-submit作业的情况,如果您使用--deploy-mode client运行作业,您的膝上型计算机就像主机一样运行,但一旦断开连接,该作业就会被终止(不确定这一点)。
  • cluster模式:当您在作业中指定--deploy-mode cluster时,即使您使用笔记本电脑或任何其他计算机运行它,作业(JAR)也将由ResourceManager和ApplicationMaster处理,就像Yarn中的任何其他应用程序一样。您将无法在屏幕上看到输出,但无论如何,大多数复杂的Spark作业都写入FS,因此可以这样处理。
 类似资料:
  • 本章描述内核中使用到的各种各样的概念。 每个 CPU 的变量 CPU 掩码 initcall 机制 Linux 内核的通知链

  • 根据[Spark on YARN resource Manager:YARN容器和Spark Executors之间的关系,YARN容器的数量应该等于Spark应用程序的num-executors。然而,我在运行中确实看到Spark-UI environment选项卡中显示的num-executors是60个,但YARN中显示的容器数量只有37个。我使用的是Spark2.2,而Spark.Dyna

  • 我有一个关于火花执行器内存的被遗忘已久的问题。我在代码中为火花作业提供了这些参数。 案例1: 执行人 这是运行的执行器数量及其内存的样子 为什么分配的内存是53248MB(52GB)?它是否也与开销内存值相加?即使是这样= 因此,我再次更改了作业中的内存参数,如下所示: 案例2:这次我给了司机 后台的执行者: 如果添加了所有内存编号,它仍会变为:4 个执行程序 * 每个执行程序 2gb = 火花提

  • 如何增加Apache spark executor节点可用的内存? 我有一个2 GB的文件,适合加载到Apache Spark。我目前正在1台机器上运行apache spark,因此驱动程序和执行程序在同一台机器上。这台机器有8 GB内存。 我尝试了这里提到的各种东西,但我仍然得到错误,并没有一个明确的想法,我应该改变设置。 我正在从spark-shell交互地运行我的代码

  • 问题内容: 我有一个表格,基本上是上传一个文件。我要提交两次表格,第1次不包含多部分,第二次1次包含多部分。 但是我想先检查一下第一次提交表单是否成功,然后再进行第二次提交 引用@Vern后编辑 这是我的servlet部分。我在哪里确定它是否由多个部分组成。如果未将 resultType 存储到会话变量中,则返回, 现在,我要检查此“已 提交 ”或类似内容,然后第二次提交表格。 第二表单提交:在这

  • 我们在2节点集群中使用Cassandra 3.5和Spark 1.6.1(每个节点8个核和16G内存)。 下面是Cassandra表 32.5秒正常吗?