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

apache-spark

10003 просмотра

2 ответа

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

[Stage7:===========>                              (14174 + 5) / 62500]
Автор: rmckeown Источник Размещён: 12.11.2019 09:27

Ответы (2)


96 плюса

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

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

Давайте посмотрим код в 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's 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
}
Автор: yjshen Размещён: 15.05.2015 01:30

29 плюса

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

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

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

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

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

Автор: gae123 Размещён: 26.09.2017 02:39
Вопросы из категории :
32x32