我在一台8核的本地机器上运行Spark,我知道我可以使用"localnum_threads“作为主线程,并在括号中使用"num_threads”来指定Spark使用的线程数。
然而,似乎Spark经常使用比我所需要的更多的线程。例如,如果我只为Spark指定了1个线程,通过在Linux上使用top命令,我仍然可以观察到cpu使用率经常超过100%,甚至200%,这意味着Spark实际使用了超过1个线程。
如果我需要同时运行多个程序,这可能是一个问题。如何严格控制Spark使用的线程/核心数量?
发布于 2014-09-30 22:03:05
Spark使用一个线程作为它的调度程序,这解释了你所看到的使用模式。如果并行启动n线程,将使用n+1内核。
有关详情,请参阅scheduling doc。
https://stackoverflow.com/questions/26087257
复制相似问题