Kıvılcım kabuğumda, bir işlevi çalıştırdığımda aşağıdaki gibi girişler ne anlama geliyor?
[Stage7:===========> (14174 + 5) / 62500]
Kıvılcım kabuğumda, bir işlevi çalıştırdığımda aşağıdaki gibi girişler ne anlama geliyor?
[Stage7:===========> (14174 + 5) / 62500]
Yanıtlar:
Ne olsun bir olduğunu Console Progress Bar
,
[Stage 7:
artık içindedir gösterileri sahne ve
(14174 + 5) / 62500]
bir (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
. İlerleme çubuğu numCompletedTasks
/ gösterir totalNumOfTasksInThisStage
.
Bu zaman görünecek hem spark.ui.showConsoleProgress
(varsayılan olarak) doğrudur ve seviyeyi log conf/log4j.properties
olduğu ERROR
veya WARN
( !log.isInfoEnabled
doğrudur).
ConsoleProgressBar.scala'da onu gösteren kodu görelim :
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
}
Aşağıdakileri gördüğünüzü varsayalım (X, A, B, C her zaman negatif olmayan tam sayılardır):
[Stage X:==========> (A + B) / C]
(örneğin X = 7, A = 14174, B = 5 ve C = 62500 sorusunda)
İşte yüksek düzeyde olup bitenler: Spark, her aşamada işi aşamalar ve görevler halinde kırar. Bu ilerleme göstergesi, Aşama X'in C görevlerinden oluştuğu anlamına gelir. Yürütme sırasında, A ve B sıfırdan başlar ve değişmeye devam eder. A her zaman halihazırda bitmiş olan görevlerin sayısıdır ve B şu anda yürütülen görevlerin sayısıdır. Birçok görevin olduğu bir aşama için (sahip olduğunuz işçilerden çok daha fazla), B'nin kümede kaç işçinizin olduğuna karşılık gelen bir sayıya ulaşmasını beklemelisiniz, ardından görevler tamamlandıkça A artışı görmeye başlamalısınız. Son birkaç görev yürütüldüğünde, B 0'a ulaşana kadar azalmaya başlayacak, bu noktada A, C'ye eşit olmalı, aşama tamamlanmış ve kıvılcım bir sonraki aşamaya geçecektir. C tüm zaman boyunca sabit kalacaktır, bunun aşamadaki toplam görev sayısı olduğunu ve asla değişmediğini unutmayın.
====>, yukarıda anlattıklarıma göre yapılan iş yüzdesini gösterir. Başlangıçta> sola doğru olacak ve görevler tamamlandığında sağa doğru hareket edecektir.