如何在spark提交作业中决定--executor内存和--num-of-executors . -number-of-core的概念是什么?
此外,群集和客户端部署模式之间存在明显差异 . 如何选择部署模式
您询问 --executor-memory , --num-executors 和 --num-executor-cores 的问题的第一部分通常取决于Spark应用程序要执行的各种任务 .
--executor-memory
--num-executors
--num-executor-cores
Executor Memory指示要分配给运行执行程序的JVM的物理内存量 . Value 取决于您的要求 . 例如,如果您需要的内存比您需要的内存少得多,比如图像处理 .
executors变量的数量是要在群集上生成的Executor JVM的数量 . 同样,它取决于许多因素,如群集大小,群集中的计算机类型等 .
每个 Actuator 分割代码并执行 tasks 中的指令 . 这些任务在执行程序核心(或处理器)中执行 . 这有助于您在某个执行程序中实现并行性,但请确保不将机器的所有内核分配给其执行程序,因为有些内核需要正常运行 .
tasks
关于问题的第二部分,我们在Spark中有两个 --deploy-mode ,你已经命名为 cluster 和 client .
--deploy-mode
cluster
client
client 模式是指将外部计算机连接到群集并从该外部计算机运行spark作业时 . 就像将笔记本电脑连接到集群并从中运行 spark-shell 一样 . 在您的笔记本电脑中调用驱动程序JVM,并在断开笔记本电脑后立即终止会话 . 类似于 spark-submit 作业的情况,如果您使用 --deploy-mode client 运行作业,您的笔记本电脑就像主电脑一样,但是一旦断开连接就会终止工作(不确定这个工作) .
spark-shell
spark-submit
--deploy-mode client
cluster mode:当您在作业中指定 --deploy-mode cluster 时,即使您使用笔记本电脑或任何其他计算机运行它,作业(JAR)也由ResourceManager和ApplicationMaster处理,就像YARN中的任何其他应用程序一样 . 你赢了't be able to see the output on your screen but anyway most complex Spark jobs write to a FS so that'就是这样照顾的 .
--deploy-mode cluster
1 回答
您询问
--executor-memory
,--num-executors
和--num-executor-cores
的问题的第一部分通常取决于Spark应用程序要执行的各种任务 .Executor Memory指示要分配给运行执行程序的JVM的物理内存量 . Value 取决于您的要求 . 例如,如果您需要的内存比您需要的内存少得多,比如图像处理 .
executors变量的数量是要在群集上生成的Executor JVM的数量 . 同样,它取决于许多因素,如群集大小,群集中的计算机类型等 .
每个 Actuator 分割代码并执行
tasks
中的指令 . 这些任务在执行程序核心(或处理器)中执行 . 这有助于您在某个执行程序中实现并行性,但请确保不将机器的所有内核分配给其执行程序,因为有些内核需要正常运行 .关于问题的第二部分,我们在Spark中有两个
--deploy-mode
,你已经命名为cluster
和client
.client
模式是指将外部计算机连接到群集并从该外部计算机运行spark作业时 . 就像将笔记本电脑连接到集群并从中运行spark-shell
一样 . 在您的笔记本电脑中调用驱动程序JVM,并在断开笔记本电脑后立即终止会话 . 类似于spark-submit
作业的情况,如果您使用--deploy-mode client
运行作业,您的笔记本电脑就像主电脑一样,但是一旦断开连接就会终止工作(不确定这个工作) .cluster
mode:当您在作业中指定--deploy-mode cluster
时,即使您使用笔记本电脑或任何其他计算机运行它,作业(JAR)也由ResourceManager和ApplicationMaster处理,就像YARN中的任何其他应用程序一样 . 你赢了't be able to see the output on your screen but anyway most complex Spark jobs write to a FS so that'就是这样照顾的 .