Di spark-shell saya, apa arti entri seperti di bawah ini ketika saya menjalankan suatu fungsi?
[Stage7:===========> (14174 + 5) / 62500]
apache-spark
rmckeown.dll
sumber
sumber
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 menunjukkannumCompletedTasks
/totalNumOfTasksInThisStage
.Ini akan ditampilkan jika keduanya
spark.ui.showConsoleProgress
benar (secara default) dan tingkat log inconf/log4j.properties
adalahERROR
atauWARN
(!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 }
sumber
Anggaplah Anda melihat yang berikut ini (X, A, B, C selalu merupakan bilangan bulat non negatif):
(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.
sumber