首页 文章

有人可以让我知道如何决定 - 执行内存和--num-of-executors在spark提交作业 . -number-of-core的概念是什么?

提问于
浏览
0

如何在spark提交作业中决定--executor内存和--num-of-executors . -number-of-core的概念是什么?

此外,群集和客户端部署模式之间存在明显差异 . 如何选择部署模式

1 回答

  • 0

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

    • Executor Memory指示要分配给运行执行程序的JVM的物理内存量 . Value 取决于您的要求 . 例如,如果您需要的内存比您需要的内存少得多,比如图像处理 .

    • executors变量的数量是要在群集上生成的Executor JVM的数量 . 同样,它取决于许多因素,如群集大小,群集中的计算机类型等 .

    • 每个 Actuator 分割代码并执行 tasks 中的指令 . 这些任务在执行程序核心(或处理器)中执行 . 这有助于您在某个执行程序中实现并行性,但请确保不将机器的所有内核分配给其执行程序,因为有些内核需要正常运行 .

    关于问题的第二部分,我们在Spark中有两个 --deploy-mode ,你已经命名为 clusterclient .

    • 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'就是这样照顾的 .

相关问题