This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kyuubi.git
The following commit(s) were added to refs/heads/master by this push:
new 58a4f58a1 [KYUUBI #3420][SPARK] Expose UI url on registering engine
service
58a4f58a1 is described below
commit 58a4f58a1f47e14ff8f73c8c0b874ccb54ac21b7
Author: zwangsheng <[email protected]>
AuthorDate: Thu Mar 16 22:11:11 2023 +0800
[KYUUBI #3420][SPARK] Expose UI url on registering engine service
### _Why are the changes needed?_
see detail in KYUUBI #3436
Splitting it out of a giant PR https://github.com/apache/kyuubi/pull/4002
to perfect
### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including
negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [ ] [Run
test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests)
locally before make a pull request
Closes #4459 from zwangsheng/3420.
Closes #3420
2fd9b3131 [zwangsheng] [KYUUBI #3420]Fouce on spark web ui
3fbee02b7 [zwangsheng] [KYUUBI #3420] With inter config and expose explicit
conf
09841d17b [zwangsheng] [KYUUBI #3420] Fix style
b47c3e5d1 [zwangsheng] [KYUUBI #3420] Fix unit test
b3ab3e23b [zwangsheng] [KYUUBI #3420] Expose more spark engine info
69292abf4 [zwangsheng] [KYUUBI #3420] Using common test case
cf889b09b [zwangsheng] [KYUUBI #3420] Fix unit test
1a0ac582f [zwangsheng] [KYUUBI #3420] Fix style
daf41de2d [zwangsheng] [KYUUBI #4453] Add etcd test
ab1038369 [zwangsheng] [KYUUBI #3420 Add Spark Web UI Url in zk node]
Authored-by: zwangsheng <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
---
.../engine/spark/SparkTBinaryFrontendService.scala | 8 +++-
.../engine/spark/SparkEngineRegisterSuite.scala | 50 ++++++++++++++++++++++
2 files changed, 57 insertions(+), 1 deletion(-)
diff --git
a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
index d4eaf3454..49cb9b3ef 100644
---
a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
+++
b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
@@ -94,7 +94,13 @@ class SparkTBinaryFrontendService(
}
override def attributes: Map[String, String] = {
- Map(KYUUBI_ENGINE_ID -> KyuubiSparkUtil.engineId)
+ val attributes = Map(
+ KYUUBI_ENGINE_ID -> KyuubiSparkUtil.engineId)
+ // TODO Support Spark Web UI Enabled SSL
+ sc.uiWebUrl match {
+ case Some(url) => attributes ++ Map(KYUUBI_ENGINE_URL ->
url.split("//").last)
+ case None => attributes
+ }
}
}
diff --git
a/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
b/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
new file mode 100644
index 000000000..8c636af76
--- /dev/null
+++
b/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
@@ -0,0 +1,50 @@
+/*
+ * 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.kyuubi.engine.spark
+
+import java.util.UUID
+
+import org.apache.kyuubi.config.KyuubiReservedKeys.{KYUUBI_ENGINE_ID,
KYUUBI_ENGINE_URL}
+
+trait SparkEngineRegisterSuite extends WithDiscoverySparkSQLEngine {
+
+ override def withKyuubiConf: Map[String, String] =
+ super.withKyuubiConf ++ Map("spark.ui.enabled" -> "true")
+
+ override val namespace: String =
s"/kyuubi/deregister_test/${UUID.randomUUID.toString}"
+
+ test("Spark Engine Register Zookeeper with spark ui info") {
+ withDiscoveryClient(client => {
+ val info = client.getChildren(namespace).head.split(";")
+ assert(info.exists(_.startsWith(KYUUBI_ENGINE_ID)))
+ assert(info.exists(_.startsWith(KYUUBI_ENGINE_URL)))
+ })
+ }
+}
+
+class ZookeeperSparkEngineRegisterSuite extends SparkEngineRegisterSuite
+ with WithEmbeddedZookeeper {
+
+ override def withKyuubiConf: Map[String, String] =
+ super.withKyuubiConf ++ zookeeperConf
+}
+
+class EtcdSparkEngineRegisterSuite extends SparkEngineRegisterSuite
+ with WithEtcdCluster {
+ override def withKyuubiConf: Map[String, String] = super.withKyuubiConf ++
etcdConf
+}