Scala(编程方式):
getExecutorStorageStatus
并且getExecutorMemoryStatus
都返回执行者的数量,包括驱动程序。像下面的示例片段。
/** Method that just returns the current active/registered executors
* excluding the driver.
* @param sc The spark context to retrieve registered executors.
* @return a list of executors each in the form of host:port.
*/
def currentActiveExecutors(sc: SparkContext): Seq[String] = {
val allExecutors = sc.getExecutorMemoryStatus.map(_._1)
val driverHost: String = sc.getConf.get("spark.driver.host")
allExecutors.filter(! _.split(":")(0).equals(driverHost)).toList
}
sc.getConf.getInt("spark.executor.instances", 1)
同样获取所有属性并打印如下,您也可以获得核心信息..
sc.getConf.getAll.mkString("\n")
或者
sc.getConf.toDebugString
大多数spark.executor.cores
执行者spark.driver.cores
驱动程序应该有这个值。
Python :
以上方法getExecutorStorageStatus和getExecutorMemoryStatus,在python api中没有实现
编辑但可以使用从 SparkSession 公开的 Py4J 绑定进行访问。
sc._jsc.sc().getExecutorMemoryStatus()