aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/org
diff options
context:
space:
mode:
authoruncleGen <hustyugm@gmail.com>2017-02-22 20:03:01 -0800
committerMarcelo Vanzin <vanzin@cloudera.com>2017-02-22 20:03:01 -0800
commit66c4b79afd3aad4c1f9446b641e28d5513cbdf5f (patch)
treef5e76b6845c737b5e0fb24af643b87b1c1deafd6 /core/src/main/scala/org
parentd3147502e7837d81e27193164b3513bb69fa3797 (diff)
downloadspark-66c4b79afd3aad4c1f9446b641e28d5513cbdf5f.tar.gz
spark-66c4b79afd3aad4c1f9446b641e28d5513cbdf5f.tar.bz2
spark-66c4b79afd3aad4c1f9446b641e28d5513cbdf5f.zip
[SPARK-16122][CORE] Add rest api for job environment
## What changes were proposed in this pull request? add rest api for job environment. ## How was this patch tested? existing ut. Author: uncleGen <hustyugm@gmail.com> Closes #16949 from uncleGen/SPARK-16122.
Diffstat (limited to 'core/src/main/scala/org')
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala15
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/ApplicationEnvironmentResource.scala45
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/api.scala11
3 files changed, 71 insertions, 0 deletions
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
index 67ccf43afa..00f918c09c 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
@@ -199,6 +199,21 @@ private[v1] class ApiRootResource extends ApiRequestContext {
new VersionResource(uiRoot)
}
+ @Path("applications/{appId}/environment")
+ def getEnvironment(@PathParam("appId") appId: String): ApplicationEnvironmentResource = {
+ withSparkUI(appId, None) { ui =>
+ new ApplicationEnvironmentResource(ui)
+ }
+ }
+
+ @Path("applications/{appId}/{attemptId}/environment")
+ def getEnvironment(
+ @PathParam("appId") appId: String,
+ @PathParam("attemptId") attemptId: String): ApplicationEnvironmentResource = {
+ withSparkUI(appId, Some(attemptId)) { ui =>
+ new ApplicationEnvironmentResource(ui)
+ }
+ }
}
private[spark] object ApiRootResource {
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationEnvironmentResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationEnvironmentResource.scala
new file mode 100644
index 0000000000..739a8aceae
--- /dev/null
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationEnvironmentResource.scala
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.spark.status.api.v1
+
+import javax.ws.rs._
+import javax.ws.rs.core.MediaType
+
+import org.apache.spark.ui.SparkUI
+
+@Produces(Array(MediaType.APPLICATION_JSON))
+private[v1] class ApplicationEnvironmentResource(ui: SparkUI) {
+
+ @GET
+ def getEnvironmentInfo(): ApplicationEnvironmentInfo = {
+ val listener = ui.environmentListener
+ listener.synchronized {
+ val jvmInfo = Map(listener.jvmInformation: _*)
+ val runtime = new RuntimeInfo(
+ jvmInfo("Java Version"),
+ jvmInfo("Java Home"),
+ jvmInfo("Scala Version"))
+
+ new ApplicationEnvironmentInfo(
+ runtime,
+ listener.sparkProperties,
+ listener.systemProperties,
+ listener.classpathEntries)
+ }
+ }
+
+}
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
index c509398db1..5b9227350e 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
@@ -252,3 +252,14 @@ class AccumulableInfo private[spark](
class VersionInfo private[spark](
val spark: String)
+
+class ApplicationEnvironmentInfo private[spark] (
+ val runtime: RuntimeInfo,
+ val sparkProperties: Seq[(String, String)],
+ val systemProperties: Seq[(String, String)],
+ val classpathEntries: Seq[(String, String)])
+
+class RuntimeInfo private[spark](
+ val javaVersion: String,
+ val javaHome: String,
+ val scalaVersion: String)