[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 <2213335496@qq.com>
Signed-off-by: Cheng Pan <chengpan@apache.org>
This commit is contained in:
zwangsheng 2023-03-16 22:11:11 +08:00 committed by Cheng Pan
parent b7290dc6a9
commit 58a4f58a1f
No known key found for this signature in database
GPG Key ID: 8001952629BCC75D
2 changed files with 57 additions and 1 deletions

View File

@ -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
}
}
}

View File

@ -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
}