从图中可以看出来,第一个slot会运行3个subtask,也就是执行3个线程,前面提到slot只是做了内存隔离,并没有做CPU隔离,假设这样一种情况,我们的服务器是6核CPU的,也就是意味着每个slot就可以分到一个CPU资源,那么就意味着这3个子任务中,一个子任务执行时就有2个子任务在等待状态,所以我们在设置slot个数时,也要...
SimpleSlot getSlotForTask(JobVertexID vertexID, Iterable<TaskManagerLocation> locationPreferences) { synchronized (lock) { Tuple2<SharedSlot, Locality> p = getSlotForTaskInternal(vertexID, locationPreferences, false); //获取SharedSlot,第三个参数意思是,不是一定要local if (p != null) { SharedSlo...
这里需要说明一下:slot之间内存隔离,cpu不隔离,也就是内存是独立的,但是cpu是共享的。 Task并行度和slot个数之间的关系是怎样的? 一个Task的并行度,要求该任务有指定个数个subTask并行执行,所以要求每个subTask运行在不同的solt中,因此slot的个数不能小于任务的并行度。 slot sharing是什么鬼 slot sharing所表达...
资源slot化意味着一个task将不需要跟来自其他job的task竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。 需要注意的是,这里不会涉及到CPU的隔离,slot目前仅仅用来隔离task的受管理的内存 并行度:特定算子的子任务(subtask)的个数称之为并行度(parallel),一般情况下,一个数据流的并行度可以认为是其所有...
Task slot 是静态的概念,指的是TaskManager具有的并发执行能力。 从图中可以看出来,第一个slot会运行3个subtask,也就是执行3个线程,前面提到slot只是做了内存隔离,并没有做CPU隔离,假设这样一种情况,我们的服务器是6核CPU的,也就是意味着每个slot就可以分到一个CPU资源,那么就意味着这3个子任务中,一个子任务...