有什么方法可以改变阶段中任务的安排顺序

时间:2019-07-01 04:08:08

标签: apache-spark

我正在使用spark来处理文件输入,由于某种原因,文件的后几个分区需要更多的时间进行计算,从而导致数据偏斜。

part of the last tasks

所以我想找到一种方法来首先计算后一个分区,该方法将覆盖后一个分区的较长令牌。

我对spark的计算过程有一个大致的了解。

  • DAGScheduler创建阶段并以TaskSet的形式提交阶段。
  • TaskSchedulerImpl中,我们可以指定SchedulingMode,但这是针对不同阶段的。
  • 每个TaskSet都与一个安排任务的TaskSetManager相对应。

我在TaskSetManager

中找到了以下代码
  // Add all our tasks to the pending lists. We do this in reverse order
  // of task index so that tasks with low indices get launched first.
  for (i <- (0 until numTasks).reverse) {
    addPendingTask(i)
  }

那么我有可能更改任务启动顺序吗?

0 个答案:

没有答案