以编程方式确定 Spark 可用的核心数和内存量

Programmatically determine number of cores and amount of memory available to Spark

Spark Web UI 显示了一些关于整个集群可用资源的有趣信息。

我对以下值特别感兴趣:

如何以编程方式查询有关整个集群的这些信息?

Spark并没有真正暴露这种信息,它都隐藏在Master中并传输到WebUI。

但是您可以使用一个小 hack,WebUI 通过将 /json/ 附加到页面来支持 JSON。

因此,转到 http://<master-host>:<master-port>/json/ 将 return 只是您要查找的信息:

{
  url: "spark://<host>:<port>",
  workers: [ ],
  cores: 0,
  coresused: 0,
  memory: 0,
  memoryused: 0,
  activeapps: [ ],
  completedapps: [ ],
  activedrivers: [ ],
  status: "ALIVE"
}