Skip to content

Commit 4af0630

Browse files
committed
fix linking problems in history page & not display empty tables in pool page
1 parent 7ccda86 commit 4af0630

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,19 @@ private[ui] class AllStagesPage(parent: StagesTab) extends WebUIPage("") {
3838
val numCompletedStages = listener.numCompletedStages
3939
val failedStages = listener.failedStages.reverse.toSeq
4040
val numFailedStages = listener.numFailedStages
41+
val subPath = "stages"
4142

4243
val activeStagesTable =
43-
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
44+
new StageTableBase(request, activeStages, "activeStage", parent.basePath, subPath,
4445
parent.progressListener, parent.isFairScheduler, parent.killEnabled, false)
4546
val pendingStagesTable =
46-
new StageTableBase(request, pendingStages, "pendingStage", parent.basePath,
47+
new StageTableBase(request, pendingStages, "pendingStage", parent.basePath, subPath,
4748
parent.progressListener, parent.isFairScheduler, false, false)
4849
val completedStagesTable =
49-
new StageTableBase(request, completedStages, "completedStage", parent.basePath,
50+
new StageTableBase(request, completedStages, "completedStage", parent.basePath, subPath,
5051
parent.progressListener, parent.isFairScheduler, false, false)
5152
val failedStagesTable =
52-
new StageTableBase(request, failedStages, "failedStage", parent.basePath,
53+
new StageTableBase(request, failedStages, "failedStage", parent.basePath, subPath,
5354
parent.progressListener, parent.isFairScheduler, false, true)
5455

5556
// For now, pool information is only accessible in live UIs

core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,18 +229,20 @@ private[ui] class JobPage(parent: JobsTab) extends WebUIPage("job") {
229229
}
230230
}
231231

232+
val basePath = "jobs/job"
233+
232234
val activeStagesTable =
233235
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
234-
parent.jobProgresslistener, parent.isFairScheduler, parent.killEnabled, false)
236+
basePath, parent.jobProgresslistener, parent.isFairScheduler, parent.killEnabled, false)
235237
val pendingOrSkippedStagesTable =
236238
new StageTableBase(request, pendingOrSkippedStages, "pendingStage", parent.basePath,
237-
parent.jobProgresslistener, parent.isFairScheduler, false, false)
239+
basePath, parent.jobProgresslistener, parent.isFairScheduler, false, false)
238240
val completedStagesTable =
239241
new StageTableBase(request, completedStages, "completedStage", parent.basePath,
240-
parent.jobProgresslistener, parent.isFairScheduler, false, false)
242+
basePath, parent.jobProgresslistener, parent.isFairScheduler, false, false)
241243
val failedStagesTable =
242244
new StageTableBase(request, failedStages, "failedStage", parent.basePath,
243-
parent.jobProgresslistener, parent.isFairScheduler, false, true)
245+
basePath, parent.jobProgresslistener, parent.isFairScheduler, false, true)
244246

245247
val shouldShowActiveStages = activeStages.nonEmpty
246248
val shouldShowPendingStages = !isComplete && pendingOrSkippedStages.nonEmpty

core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ private[ui] class PoolPage(parent: StagesTab) extends WebUIPage("pool") {
4242
case Some(s) => s.values.toSeq
4343
case None => Seq[StageInfo]()
4444
}
45+
val shouldShowActiveStages = activeStages.nonEmpty
4546
val activeStagesTable =
46-
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
47+
new StageTableBase(request, activeStages, "activeStage", parent.basePath, "stages/pool",
4748
parent.progressListener, parent.isFairScheduler, parent.killEnabled, false)
4849

4950
// For now, pool information is only accessible in live UIs
@@ -52,9 +53,10 @@ private[ui] class PoolPage(parent: StagesTab) extends WebUIPage("pool") {
5253
}).toSeq
5354
val poolTable = new PoolTable(pools, parent)
5455

55-
val content =
56-
<h4>Summary </h4> ++ poolTable.toNodeSeq ++
57-
<h4>{activeStages.size} Active Stages</h4> ++ activeStagesTable.toNodeSeq
56+
var content = <h4>Summary </h4> ++ poolTable.toNodeSeq
57+
if (shouldShowActiveStages) {
58+
content ++= <h4>{activeStages.size} Active Stages</h4> ++ activeStagesTable.toNodeSeq
59+
}
5860

5961
UIUtils.headerSparkPage("Fair Scheduler Pool: " + poolName, content, parent)
6062
}

core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ private[ui] class StageTableBase(
3636
stages: Seq[StageInfo],
3737
stageTag: String,
3838
basePath: String,
39+
subPath: String,
3940
progressListener: JobProgressListener,
4041
isFairScheduler: Boolean,
4142
killEnabled: Boolean,
@@ -78,6 +79,7 @@ private[ui] class StageTableBase(
7879
stages,
7980
stageTag,
8081
basePath,
82+
subPath,
8183
progressListener,
8284
isFairScheduler,
8385
killEnabled,
@@ -131,6 +133,7 @@ private[ui] class StagePagedTable(
131133
stages: Seq[StageInfo],
132134
stageTag: String,
133135
basePath: String,
136+
subPath: String,
134137
listener: JobProgressListener,
135138
isFairScheduler: Boolean,
136139
killEnabled: Boolean,
@@ -152,12 +155,12 @@ private[ui] class StagePagedTable(
152155

153156
override def pageNumberFormField: String = stageTag + ".page"
154157

155-
val parameterPath = basePath + "?" + parameterOtherTable.mkString("&")
158+
val parameterPath = UIUtils.prependBaseUri(basePath) + s"/$subPath/?" +
159+
parameterOtherTable.mkString("&")
156160

157161
override val dataSource = new StageDataSource(
158162
stages,
159163
listener,
160-
basePath,
161164
currentTime,
162165
pageSize,
163166
sortColumn,
@@ -391,7 +394,6 @@ private[ui] class StagePagedTable(
391394
private[ui] class StageDataSource(
392395
stages: Seq[StageInfo],
393396
listener: JobProgressListener,
394-
basePath: String,
395397
currentTime: Long,
396398
pageSize: Int,
397399
sortColumn: String,

0 commit comments

Comments
 (0)