Di spark-shell saya, apa arti entri seperti di bawah ini ketika saya menjalankan suatu fungsi?
[Stage7:===========> (14174 + 5) / 62500]
Di spark-shell saya, apa arti entri seperti di bawah ini ketika saya menjalankan suatu fungsi?
[Stage7:===========> (14174 + 5) / 62500]
Jawaban:
Apa yang Anda dapatkan adalah a Console Progress Bar
,
[Stage 7:
menunjukkan tahap Anda saat ini, dan
(14174 + 5) / 62500]
sekarang (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
. Bilah kemajuan menunjukkan numCompletedTasks
/ totalNumOfTasksInThisStage
.
Ini akan ditampilkan jika keduanya spark.ui.showConsoleProgress
benar (secara default) dan tingkat log in conf/log4j.properties
adalah ERROR
atau WARN
( !log.isInfoEnabled
benar).
Mari kita lihat kode di ConsoleProgressBar.scala yang menunjukkannya:
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
}
Anggaplah Anda melihat yang berikut ini (X, A, B, C selalu merupakan bilangan bulat non negatif):
[Stage X:==========> (A + B) / C]
(misalnya pada soal X = 7, A = 14174, B = 5 dan C = 62500)
Inilah yang terjadi pada level tinggi: Spark memecah pekerjaan dalam tahapan dan tugas di setiap tahapan. Indikator kemajuan ini berarti bahwa Tahap X terdiri dari tugas-tugas C. Selama eksekusi, A dan B mulai dari nol dan terus berubah. A selalu jumlah tugas yang sudah selesai dan B adalah jumlah tugas yang sedang dijalankan. Untuk tahap dengan banyak tugas (jauh lebih banyak daripada pekerja yang Anda miliki), Anda akan melihat B bertambah ke angka yang sesuai dengan berapa banyak pekerja yang Anda miliki di cluster, lalu Anda akan mulai melihat A meningkat saat tugas selesai. Menjelang akhir, saat beberapa tugas terakhir dijalankan, B akan mulai menurun hingga mencapai 0, di mana titik A harus sama dengan C, tahapan selesai, dan percikan pindah ke tahap berikutnya. C akan tetap konstan sepanjang waktu, ingat itu adalah jumlah total tugas dalam tahapan dan tidak pernah berubah.
====> menunjukkan persentase pekerjaan yang diselesaikan berdasarkan apa yang saya jelaskan di atas. Pada awalnya> akan mengarah ke kiri dan akan bergerak ke kanan saat tugas selesai.