有没有办法设置spark执行器进程的niceness设置?

时间:2016-11-14 16:28:34

标签: apache-spark

我有一组机器,我必须与其他进程共享。让我们说我不是一个好人,并希望我的火花执行器流程比其他人的流程具有更高的优先级。我该怎么设置呢?

我正在使用在RHEL7上运行的StandAlone模式v2.01

2 个答案:

答案 0 :(得分:1)

Spark当前不(2.4.0)支持nice进程优先级。遍历代码库,没有使用nice,因此使用现成的Spark在执行程序上设置进程优先级并不容易。 Spark这样做是有点奇怪的,因为它仅假设它可以启动JVM,而不是基本操作系统是UNIX。

我不建议您使用一些骇人听闻的方法来解决此问题。例如,如果您将Mesos用作资源管理器,则可以将spark.mesos.executor.docker.image设置为Java实际调用nice -1 old-java "$@"的图像。

答案 1 :(得分:0)

  

将所有资源分配给spark应用程序,尽量减少   操作系统运行所需的资源。

一个简单的场景: 想象一下,有六个节点运行NodeManagers(Yarn Mode)的集群,每个节点都配备了16个内核和64GB内存。 NodeManager容量yarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcores应该分别设置为63 * 1024 = 64512(兆字节)和15。我们避免将100%的资源分配给YARN容器,因为该节点需要一些资源来运行OS和Hadoop守护进程。在这种情况下,我们为这些系统进程留下了一个千兆字节和一个核心。