Skip to content

Commit

Permalink
paginate stage table in stages tab
Browse files Browse the repository at this point in the history
  • Loading branch information
nblintao committed Jun 16, 2016
1 parent 0ee9fd9 commit 4255c09
Show file tree
Hide file tree
Showing 4 changed files with 409 additions and 139 deletions.
21 changes: 9 additions & 12 deletions core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,19 @@ private[ui] class AllStagesPage(parent: StagesTab) extends WebUIPage("") {
val numCompletedStages = listener.numCompletedStages
val failedStages = listener.failedStages.reverse.toSeq
val numFailedStages = listener.numFailedStages
val now = System.currentTimeMillis

val activeStagesTable =
new StageTableBase(activeStages.sortBy(_.submissionTime).reverse,
parent.basePath, parent.progressListener, isFairScheduler = parent.isFairScheduler,
killEnabled = parent.killEnabled)
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
parent.progressListener, parent.isFairScheduler, parent.killEnabled, false)
val pendingStagesTable =
new StageTableBase(pendingStages.sortBy(_.submissionTime).reverse,
parent.basePath, parent.progressListener, isFairScheduler = parent.isFairScheduler,
killEnabled = false)
new StageTableBase(request, pendingStages, "pendingStage", parent.basePath,
parent.progressListener, parent.isFairScheduler, false, false)
val completedStagesTable =
new StageTableBase(completedStages.sortBy(_.submissionTime).reverse, parent.basePath,
parent.progressListener, isFairScheduler = parent.isFairScheduler, killEnabled = false)
new StageTableBase(request, completedStages, "completedStage", parent.basePath,
parent.progressListener, parent.isFairScheduler, false, false)
val failedStagesTable =
new FailedStageTable(failedStages.sortBy(_.submissionTime).reverse, parent.basePath,
parent.progressListener, isFairScheduler = parent.isFairScheduler)
new StageTableBase(request, failedStages, "failedStage", parent.basePath,
parent.progressListener, parent.isFairScheduler, false, true)

// For now, pool information is only accessible in live UIs
val pools = sc.map(_.getAllPools).getOrElse(Seq.empty[Schedulable])
Expand Down Expand Up @@ -135,4 +132,4 @@ private[ui] class AllStagesPage(parent: StagesTab) extends WebUIPage("") {
UIUtils.headerSparkPage("Stages for All Jobs", content, parent)
}
}
}
}
18 changes: 8 additions & 10 deletions core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -230,19 +230,17 @@ private[ui] class JobPage(parent: JobsTab) extends WebUIPage("job") {
}

val activeStagesTable =
new StageTableBase(activeStages.sortBy(_.submissionTime).reverse,
parent.basePath, parent.jobProgresslistener, isFairScheduler = parent.isFairScheduler,
killEnabled = parent.killEnabled)
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
parent.jobProgresslistener, parent.isFairScheduler, parent.killEnabled, false)
val pendingOrSkippedStagesTable =
new StageTableBase(pendingOrSkippedStages.sortBy(_.stageId).reverse,
parent.basePath, parent.jobProgresslistener, isFairScheduler = parent.isFairScheduler,
killEnabled = false)
new StageTableBase(request, pendingOrSkippedStages, "pendingStage", parent.basePath,
parent.jobProgresslistener, parent.isFairScheduler, false, false)
val completedStagesTable =
new StageTableBase(completedStages.sortBy(_.submissionTime).reverse, parent.basePath,
parent.jobProgresslistener, isFairScheduler = parent.isFairScheduler, killEnabled = false)
new StageTableBase(request, completedStages, "completedStage", parent.basePath,
parent.jobProgresslistener, parent.isFairScheduler, false, false)
val failedStagesTable =
new FailedStageTable(failedStages.sortBy(_.submissionTime).reverse, parent.basePath,
parent.jobProgresslistener, isFairScheduler = parent.isFairScheduler)
new StageTableBase(request, failedStages, "failedStage", parent.basePath,
parent.jobProgresslistener, parent.isFairScheduler, false, true)

val shouldShowActiveStages = activeStages.nonEmpty
val shouldShowPendingStages = !isComplete && pendingOrSkippedStages.nonEmpty
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ private[ui] class PoolPage(parent: StagesTab) extends WebUIPage("pool") {
case Some(s) => s.values.toSeq
case None => Seq[StageInfo]()
}
val activeStagesTable = new StageTableBase(activeStages.sortBy(_.submissionTime).reverse,
parent.basePath, parent.progressListener, isFairScheduler = parent.isFairScheduler,
killEnabled = parent.killEnabled)
val activeStagesTable =
new StageTableBase(request, activeStages, "activeStage", parent.basePath,
parent.progressListener, parent.isFairScheduler, parent.killEnabled, false)

// For now, pool information is only accessible in live UIs
val pools = sc.map(_.getPoolForName(poolName).getOrElse {
Expand Down
Loading

0 comments on commit 4255c09

Please sign in to comment.