Skip to content

Commit 346f4ea

Browse files
Review feedback fixes.
1 parent 629c1dc commit 346f4ea

File tree

5 files changed

+43
-51
lines changed

5 files changed

+43
-51
lines changed

core/src/main/scala/org/apache/spark/SparkContext.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import java.util.concurrent.atomic.{AtomicReference, AtomicBoolean, AtomicIntege
2727
import java.util.UUID.randomUUID
2828

2929
import scala.collection.{Map, Set}
30-
3130
import scala.collection.JavaConversions._
3231
import scala.collection.generic.Growable
3332
import scala.collection.mutable.HashMap
@@ -57,7 +56,8 @@ import org.apache.spark.partial.{ApproximateEvaluator, PartialResult}
5756
import org.apache.spark.rdd._
5857
import org.apache.spark.rpc.{RpcAddress, RpcEndpointRef}
5958
import org.apache.spark.scheduler._
60-
import org.apache.spark.scheduler.cluster.{CoarseGrainedSchedulerBackend, SparkDeploySchedulerBackend, SimrSchedulerBackend}
59+
import org.apache.spark.scheduler.cluster.{CoarseGrainedSchedulerBackend,
60+
SparkDeploySchedulerBackend, SimrSchedulerBackend}
6161
import org.apache.spark.scheduler.cluster.mesos.{CoarseMesosSchedulerBackend, MesosSchedulerBackend}
6262
import org.apache.spark.scheduler.local.LocalBackend
6363
import org.apache.spark.storage._

core/src/main/scala/org/apache/spark/scheduler/SchedulerBackend.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private[spark] trait SchedulerBackend {
5252
/**
5353
* Get the URLs for the driver logs. These URLs are used to display the links in the UI
5454
* Executors tab for the driver.
55-
* @return The urls to the logs of the driver
55+
* @return Map containing the log names and their respective URLs
5656
*/
5757
def getDriverLogUrls: Option[Map[String, String]] = None
5858

core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class ExecutorsListener(storageStatusListener: StorageStatusListener) extends Sp
7979
s.blockManagerId.executorId == SparkContext.LEGACY_DRIVER_IDENTIFIER ||
8080
s.blockManagerId.executorId == SparkContext.DRIVER_IDENTIFIER
8181
}
82-
storageStatus.foreach(s => executorToLogUrls(s.blockManagerId.executorId) = logs.toMap)
82+
storageStatus.foreach { s => executorToLogUrls(s.blockManagerId.executorId) = logs.toMap }
8383
}
8484
}
8585

yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import org.apache.hadoop.security.UserGroupInformation
3333
import org.apache.hadoop.yarn.conf.YarnConfiguration
3434
import org.apache.hadoop.yarn.api.ApplicationConstants
3535
import org.apache.hadoop.yarn.api.ApplicationConstants.Environment
36-
import org.apache.hadoop.yarn.api.records.{ContainerId, Priority, ApplicationAccessType}
36+
import org.apache.hadoop.yarn.api.records.{ApplicationAccessType, ContainerId, Priority}
3737
import org.apache.hadoop.yarn.util.ConverterUtils
3838

3939
import org.apache.spark.deploy.SparkHadoopUtil

yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala

Lines changed: 38 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -66,57 +66,49 @@ private[spark] class YarnClusterSchedulerBackend(
6666
override def getDriverLogUrls: Option[Map[String, String]] = {
6767
var yarnClientOpt: Option[YarnClient] = None
6868
var driverLogs: Option[Map[String, String]] = None
69-
val appId: String = applicationId()
70-
if (appId == null) {
71-
logError("Application Id not set. Cannot get Driver Log URLs")
72-
None
73-
} else {
74-
try {
75-
val yarnConf = new YarnConfiguration(sc.hadoopConfiguration)
76-
val containerId = YarnSparkHadoopUtil.get.getContainerId
69+
try {
70+
val yarnConf = new YarnConfiguration(sc.hadoopConfiguration)
71+
val containerId = YarnSparkHadoopUtil.get.getContainerId
72+
yarnClientOpt = Some(YarnClient.createYarnClient())
73+
yarnClientOpt.foreach { yarnClient =>
74+
yarnClient.init(yarnConf)
75+
yarnClient.start()
76+
val addresses =
77+
NetworkInterface.getNetworkInterfaces.asScala
78+
.flatMap(_.getInetAddresses.asScala)
79+
.toSeq
7780

78-
yarnClientOpt = Some(YarnClient.createYarnClient())
79-
80-
yarnClientOpt.foreach { yarnClient =>
81-
yarnClient.init(yarnConf)
82-
yarnClient.start()
83-
val addresses =
84-
NetworkInterface.getNetworkInterfaces.asScala
85-
.flatMap(_.getInetAddresses.asScala)
86-
.toSeq
87-
88-
val nodeReport =
89-
yarnClient.getNodeReports(NodeState.RUNNING).asScala.find { x =>
90-
val host = x.getNodeId.getHost
91-
addresses.exists { address =>
92-
address.getHostAddress == host ||
93-
address.getHostName == host ||
94-
address.getCanonicalHostName == host
95-
}
81+
val nodeReport =
82+
yarnClient.getNodeReports(NodeState.RUNNING).asScala.find { x =>
83+
val host = x.getNodeId.getHost
84+
addresses.exists { address =>
85+
address.getHostAddress == host ||
86+
address.getHostName == host ||
87+
address.getCanonicalHostName == host
9688
}
97-
nodeReport.foreach { report =>
98-
val httpAddress = report.getHttpAddress
99-
// lookup appropriate http scheme for container log urls
100-
val yarnHttpPolicy = yarnConf.get(
101-
YarnConfiguration.YARN_HTTP_POLICY_KEY,
102-
YarnConfiguration.YARN_HTTP_POLICY_DEFAULT
103-
)
104-
val user = Utils.getCurrentUserName()
105-
val httpScheme = if (yarnHttpPolicy == "HTTPS_ONLY") "https://" else "http://"
106-
val baseUrl = s"$httpScheme$httpAddress/node/containerlogs/$containerId/$user"
107-
logInfo(s"Base URL for logs: $baseUrl")
108-
driverLogs = Some(
109-
Map("stderr" -> s"$baseUrl/stderr?start=0", "stdout" -> s"$baseUrl/stdout?start=0"))
11089
}
90+
nodeReport.foreach { report =>
91+
val httpAddress = report.getHttpAddress
92+
// lookup appropriate http scheme for container log urls
93+
val yarnHttpPolicy = yarnConf.get(
94+
YarnConfiguration.YARN_HTTP_POLICY_KEY,
95+
YarnConfiguration.YARN_HTTP_POLICY_DEFAULT
96+
)
97+
val user = Utils.getCurrentUserName()
98+
val httpScheme = if (yarnHttpPolicy == "HTTPS_ONLY") "https://" else "http://"
99+
val baseUrl = s"$httpScheme$httpAddress/node/containerlogs/$containerId/$user"
100+
logInfo(s"Base URL for logs: $baseUrl")
101+
driverLogs = Some(
102+
Map("stderr" -> s"$baseUrl/stderr?start=0", "stdout" -> s"$baseUrl/stdout?start=0"))
111103
}
112-
} catch {
113-
case e: Exception =>
114-
logInfo("Node Report API is not available in the version of YARN being used, so AM" +
115-
" logs link will not appear in application UI", e)
116-
} finally {
117-
yarnClientOpt.foreach(_.close())
118104
}
119-
driverLogs
105+
} catch {
106+
case e: Exception =>
107+
logInfo("Node Report API is not available in the version of YARN being used, so AM" +
108+
" logs link will not appear in application UI", e)
109+
} finally {
110+
yarnClientOpt.foreach(_.close())
120111
}
112+
driverLogs
121113
}
122114
}

0 commit comments

Comments
 (0)