iodone opened a new issue #929: URL: https://github.com/apache/incubator-kyuubi/issues/929
### 1. Describe the bug <!-- A clear and concise description of what the bug is. --> The Kyuubi Engine is configured with multiple Spark Catalogs, and calls the Kyuubi Server's GetCatalogs Thrift API after startup, which can only show the default catalog configuration. After checking the implementation of GetCatalogs, I finally traced it to this: https://github.com/apache/incubator-kyuubi/blob/7e2d67ed618bff5ca58e35814c681a94e457e9f3/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/shim/CatalogShim_v3_0.scala#L29-L42 The called catalogs API are obtained from the CatalogManager and then traced to the Spark CatalogManager Catalogs registration at ``` private val catalogs = mutable.HashMap.empty[String, CatalogPlugin] def catalog(name: String): CatalogPlugin = synchronized { if (name.equalsIgnoreCase(SESSION_CATALOG_NAME)) { v2SessionCatalog } else { catalogs.getOrElseUpdate(name, Catalogs.load(name, conf)) } } ``` Catalog registration additions are dynamically loaded, that is, only when the Catalog is used will it be registered. The problem is that when connecting to Kyuubi Server at the beginning, it is not possible to get all the catalog display information, which usually occurs only in multiple Catalog scenarios ### 2. Environments #### 2.1 Versions - Kyuubi - [x] 1.2.0 - Spark - [x] 3.1.x #### 2.2 Kyuubi Configurations #### 2.3 Spark Configurations Multi-Catalog Support ``` spark.sql.catalog.catalog0=catalog0.implemant.class spark.sql.catalog.catalog1=catalog1.implemant.class spark.sql.catalog.catalog2=catalog2.implemant.class ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
