--master local[n] 和 --total-executor-core = n (Spark Standalone) 有什么区别?
What is the difference between --master local[n] and --total-executor-core = n (Spark Standalone)?
我有一个 4 个节点的 Spark Standalone 集群,每个节点有 56 个核心
当我 运行 与 --master local[56]
和 master --spark://... --executor-cores 56 --total-executor-cores 56
的工作相同时(我认为它们是相同的)
我发现他们的表现不一样,而后者表现更好。这2种spark-submit
有什么区别?
What is the difference between these 2 kinds of spark-submit?
--master local[56]
为执行程序使用具有 56 个线程的单个 JVM。
--master spark://...
使用一个 Spark Standalone 集群,它可能是也可能不是 运行 在你执行 spark-submit
的同一台机器上。该集群可能有也可能没有多个分布式节点,每个节点有一个或多个 CPUs.
--total-executor-cores NUM
是所有执行器的总核心数。它没有说明您为单个 Spark 应用程序获得了多少个执行程序(节点)。可能是一个,但也可能是几十个或更多(每个 CPU 数量未知)。您所知道的是此 Spark 应用程序的 CPU 个内核总数。
--executor-cores NUM
是每个执行器的核心数。 (默认值:独立模式下 worker 上的所有可用内核)。
最后一个选项要求解释执行者和工人之间的区别。
执行器是由工作程序托管的 JVM 进程。执行者负责执行代表您的 Spark 应用程序的任务。 Worker 是 Spark Standalone 集群的一部分。
你可能有 10 个执行者和 1 个工人,或者 1 个执行者和 10 个工人。在整个 Spark Standalone 集群中可用的 20 CPU 个内核中,也可以为您的 Spark 应用程序提供 10 CPU 个内核。这是为了让其他 Spark 应用程序 spark-submit
加入集群以分担工作量。
有人会问:
So according to this seems as if --total-executor-cores
is equal to --executor-cores
, then we could just have 1 executor, thus only one node would be activated for the Spark jobs
--total-executor-cores
是每个 Spark 应用程序的 总数 个 CPU 核心数,而 --executor-cores
是每个 Spark 应用程序的 CPU 个核心数一个 Spark 应用程序的执行者。
换句话说,--total-executor-cores
通常大于 --executor-cores
,但它们也可以相同(例如,只有一个工人和一个执行者)。
我有一个 4 个节点的 Spark Standalone 集群,每个节点有 56 个核心
当我 运行 与 --master local[56]
和 master --spark://... --executor-cores 56 --total-executor-cores 56
的工作相同时(我认为它们是相同的)
我发现他们的表现不一样,而后者表现更好。这2种spark-submit
有什么区别?
What is the difference between these 2 kinds of spark-submit?
--master local[56]
为执行程序使用具有 56 个线程的单个 JVM。
--master spark://...
使用一个 Spark Standalone 集群,它可能是也可能不是 运行 在你执行 spark-submit
的同一台机器上。该集群可能有也可能没有多个分布式节点,每个节点有一个或多个 CPUs.
--total-executor-cores NUM
是所有执行器的总核心数。它没有说明您为单个 Spark 应用程序获得了多少个执行程序(节点)。可能是一个,但也可能是几十个或更多(每个 CPU 数量未知)。您所知道的是此 Spark 应用程序的 CPU 个内核总数。
--executor-cores NUM
是每个执行器的核心数。 (默认值:独立模式下 worker 上的所有可用内核)。
最后一个选项要求解释执行者和工人之间的区别。
执行器是由工作程序托管的 JVM 进程。执行者负责执行代表您的 Spark 应用程序的任务。 Worker 是 Spark Standalone 集群的一部分。
你可能有 10 个执行者和 1 个工人,或者 1 个执行者和 10 个工人。在整个 Spark Standalone 集群中可用的 20 CPU 个内核中,也可以为您的 Spark 应用程序提供 10 CPU 个内核。这是为了让其他 Spark 应用程序 spark-submit
加入集群以分担工作量。
有人会问:
So according to this seems as if
--total-executor-cores
is equal to--executor-cores
, then we could just have 1 executor, thus only one node would be activated for the Spark jobs
--total-executor-cores
是每个 Spark 应用程序的 总数 个 CPU 核心数,而 --executor-cores
是每个 Spark 应用程序的 CPU 个核心数一个 Spark 应用程序的执行者。
换句话说,--total-executor-cores
通常大于 --executor-cores
,但它们也可以相同(例如,只有一个工人和一个执行者)。