1.1、和启动Executor分配管理器ExecutorAllocationManager
//声明
private var _executorAllocationManager: Option[ExecutorAllocationManager] = None
//初始化
// Optionally scale number of executors dynamically based on workload. Exposed for testing.
val dynamicAllocationEnabled = Utils.isDynamicAllocationEnabled(_conf)
_executorAllocationManager =
if (dynamicAllocationEnabled) {
schedulerBackend match {
case b: ExecutorAllocationClient =>
Some(new ExecutorAllocationManager(
schedulerBackend.asInstanceOf[ExecutorAllocationClient], listenerBus, _conf))
case _ =>
None
}
} else {
None
}
//启动
_executorAllocationManager.foreach(_.start())