每个节点(物理机)运行多个Spark实例有什么好处?

在特定机器/节点上启动多个spark实例(master或worker)有什么好处吗?

spark standalone documentation没有明确说明在同一节点上启动集群或多个工作程序 . 它似乎隐含地混淆了一个 Worker 等于一个节点

他们的hardware provisioning页说:

最后,请注意Java VM并不总是表现出超过200 GB的RAM . 如果购买RAM大于此值的计算机,则可以为每个节点运行多个工作JVM . 在Spark的独立模式下,您可以使用conf / spark-env.sh中的SPARK_WORKER_INSTANCES变量设置每个节点的工作线程数,并使用SPARK_WORKER_CORES设置每个工作线程的核心数 .

因此,除了处理大量内存或测试群集配置之外,每个节点运行多个工作线程有什么好处吗?

回答(1)

2 years ago

我认为显而易见的好处是在不降低性能的情况下提高每盒硬件的资源利用率 . 在并行性方面,一个具有多个内核的大型执行程序似乎与具有较少内核的多个执行程序相同 .