spark-core基础理解

想问几个问题,
 a.同一个STAGE 中的TASK 的计算功能是一样的,为什么taskSet中task各自对应的TaskLocality优先级不一样呢?
 
 b.在客户的向Master注册Application的时候,Master已经为Application分配并启动好Executor,
 想问 
 1.Application注册,是怎么分配Executor给Application的?
 2.1假如 Application 申请100个Executor,而集群碰巧中有1000个可用的Executor,是随意分100个Executor 给Application?
 2.2 如果是根据数据本地性原则,把所在得机器能够取到数据本地性的Executor分给Application,是怎么判断那些机器能够取嘚数据本地性?
 2.3 Spark不是  已经实现的 Dynamic Resource Allocation 机制吗?
 
 c.TaskSetManager getAllowedLocalityLevel 
 
 else if (curTime - lastLaunchTime >= localityWaits(currentLocalityIndex)) {
        // Jump to the next locality level, and reset lastLaunchTime so that the next locality
        // wait timer doesn't immediately expire
        lastLaunchTime += localityWaits(currentLocalityIndex)
        logDebug(s"Moving to ${myLocalityLevels(currentLocalityIndex + 1)} after waiting for " +
          s"${localityWaits(currentLocalityIndex)}ms")
        currentLocalityIndex += 1
      }
 
满足这个条件就说等待了多少豪秒,但是我没有看见有等待函数阿
能否请帮助解惑下

要回复问题请先登录注册