Подтвердить что ты не робот

Что означают цифры на индикаторе выполнения в искровой оболочке?

В моей искровой оболочке, какие записи, такие как ниже, означают, когда я выполняю функцию?

[Stage7:===========>                              (14174 + 5) / 62500]
4b9b3361

Ответ 1

Что вы получаете, это Console Progress Bar, [Stage 7: показывает стадию, в которой вы сейчас находитесь, и (14174 + 5) / 62500] - (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]. Индикатор выполнения показывает numCompletedTasks/totalNumOfTasksInThisStage.

Это будет показано, когда оба spark.ui.showConsoleProgress истинны (по умолчанию) и Уровень журнала conf/log4j.properties равен ERROR или WARN (!log.isInfoEnabled истинно).

Посмотрите код в ConsoleProgressBar.scala, который показывает его:

private def show(now: Long, stages: Seq[SparkStageInfo]) {
  val width = TerminalWidth / stages.size
  val bar = stages.map { s =>
    val total = s.numTasks()
    val header = s"[Stage ${s.stageId()}:"
    val tailer = s"(${s.numCompletedTasks()} + ${s.numActiveTasks()}) / $total]"
    val w = width - header.length - tailer.length
    val bar = if (w > 0) {
      val percent = w * s.numCompletedTasks() / total
      (0 until w).map { i =>
        if (i < percent) "=" else if (i == percent) ">" else " "
      }.mkString("")
    } else {
    ""
    }
    header + bar + tailer
  }.mkString("")

  // only refresh if it changed of after 1 minute (or the ssh connection will be closed
  // after idle some time)
  if (bar != lastProgressBar || now - lastUpdateTime > 60 * 1000L) {
    System.err.print(CR + bar)
    lastUpdateTime = now
  }
  lastProgressBar = bar
}

Ответ 2

Предположим, что вы видите следующее (X, A, B, C всегда не отрицательные целые числа):

[Stage X:==========>            (A + B) / C]

(например, в вопросе X = 7, A = 14174, B = 5 и C = 62500)

Вот что происходит на высоком уровне: Spark разбивает работу по этапам и задачам на каждом этапе. Этот индикатор прогресса означает, что этап X состоит из задач C. Когда вы смотрите на него, A - это количество заданий, которые уже завершены, а B - количество выполняемых в настоящее время задач. Для этапа с множеством задач (намного больше, чем у вас есть) вы должны ожидать, что B вырастет до числа, которое соответствует количеству рабочих, которые у вас есть в кластере, тогда вы должны начать видеть увеличение при завершении задания. Ближе к концу B начнет уменьшаться до тех пор, пока не достигнет 0, и в этот момент A должен равняться C, а искра переходит на следующую ступень. C будет оставаться постоянным в течение всего времени.

==== > показывает процент выполненной работы, основанный на том, что я описал выше.