Skip to content
Snippets Groups Projects
Commit 581565dd authored by Marcelo Vanzin's avatar Marcelo Vanzin
Browse files

[SPARK-21124][UI] Show correct application user in UI.

The jobs page currently shows the application user, but it assumes
the OS user is the same as the user running the application, which
may not be true in all scenarios (e.g., kerberos). While it might be
useful to show both in the UI, this change just chooses the application
user over the OS user, since the latter can be found in the environment
page if needed.

Tested in live application and in history server.

Author: Marcelo Vanzin <vanzin@cloudera.com>

Closes #18331 from vanzin/SPARK-21124.
parent 0a4b7e4f
No related branches found
No related tags found
No related merge requests found
......@@ -86,7 +86,9 @@ private[spark] class SparkUI private (
initialize()
def getSparkUser: String = {
environmentListener.systemProperties.toMap.getOrElse("user.name", "<unknown>")
environmentListener.sparkUser
.orElse(environmentListener.systemProperties.toMap.get("user.name"))
.getOrElse("<unknown>")
}
def getAppName: String = appName
......
......@@ -34,11 +34,16 @@ private[ui] class EnvironmentTab(parent: SparkUI) extends SparkUITab(parent, "en
@DeveloperApi
@deprecated("This class will be removed in a future release.", "2.2.0")
class EnvironmentListener extends SparkListener {
var sparkUser: Option[String] = None
var jvmInformation = Seq[(String, String)]()
var sparkProperties = Seq[(String, String)]()
var systemProperties = Seq[(String, String)]()
var classpathEntries = Seq[(String, String)]()
override def onApplicationStart(event: SparkListenerApplicationStart): Unit = {
sparkUser = Some(event.sparkUser)
}
override def onEnvironmentUpdate(environmentUpdate: SparkListenerEnvironmentUpdate) {
synchronized {
val environmentDetails = environmentUpdate.environmentDetails
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment