Release Notes - 1.8.0
Highlights
- Fully verified with Java 8, 11, and 17, Scala 2.12, initial support Scala 2.13
- Fully verified with Spark 3.1, 3.2, 3.3, and 3.4, initial support Spark 3.5
- Fully verified with Flink 1.16, 1.17, and 1.18
- New Web UI (experimental)
- New Chat engine with OpenAI ChatGPT backend
- Major improvements of Spark Batch API, optimized for large-scale job submission (experimental)
- Major improvements of Spark AuthZ plugin, including enhanced Iceberg and DSv2 operators support
- Major improvements of Flink engine, including YARN Application Mode support
- Introducing Atlas hook support in Spark Lineage plugin
- Continuously Kyuubi Helm Chart & Spark on K8s improvements
Spark Engine, Connectors and Plugins
- [KYUUBI #1265]
OPTIMIZE
where clause expression support - [KYUUBI #3420] Expose UI url on registering engine service
- [KYUUBI #3444] Support the planOnly mode of kyuubi spark engine support SQL lineage
- [KYUUBI #3929] Refactor lineage plugin to add LineageDispatcher
- [KYUUBI #4167] [AUTHZ] Introduce function support in PrivilegeBuilder with Serde layers
- [KYUUBI #4171] Support skip retrieving table’s properties to speed up GetTables operation
- [KYUUBI #4186] Spark showProgress with JobInfo
- [KYUUBI #4330] Non-temporary views do not resolve to a specific real table
- [KYUUBI #4331] [KYUUBI #4431] Lineage supports
Union
and MergeInto
- [KYUUBI #4415] Align the operation handle in server/engine for ExecuteScala, ExecutePython and PlanOnlyStatement
- [KYUUBI #4430] Lineage supports the
lateral view explode
statement - [KYUUBI #4433] Fix the case with
create a view from view
- [KYUUBI #4443] Do not set engine session init sql for alive probe session
- [KYUUBI #4450] Ignore unknown fields
policyPriority
when reading policy json file - [KYUUBI #4488] [KSHC] Keep object original name defined in HiveBridgeHelper
- [KYUUBI #4493] [AUTHZ] Enable Tests for Spark 3.1 with iceberg tables
- [KYUUBI #4497] Add RowFilteringTestBase to improve the test coverage
- [KYUUBI #4504] [AUTHZ] Fix source table privilege requirement when querying permanent view in Spark 3.1 and below
- [KYUUBI #4525] [KSHC] Partitioning predicates should take effect to filter data
- [KYUUBI #4530] [AUTHZ] Support non-English chars for MASK, MASK_SHOW_FIRST_4, and MASK_SHOW_FIRST_4
- [KYUUBI #4532] [AUTHZ] Displays the columns involved in extracting the aggregation operator
- [KYUUBI #4541] Support to customize the attributes to expose for Spark engine
- [KYUUBI #4560] [KSHC] Support Kerberized HMS in cluster mode w/o keytab
- [KYUUBI #4585] [AUTHZ] Authz policy file generation
- [KYUUBI #4587] Take care of table cache query stage
- [KYUUBI #4592] Support eagerly kill redundant executors
- [KYUUBI #4615] Support stage level schedule for final write stage
- [KYUUBI #4617] [AUTHZ] Collect results for filtered show objects ahead to prevent holding unserializable spark plan
- [KYUUBI #4620] [KSHC] Cut off transitive dependencies
- [KYUUBI #4636] Improve eagerly kill redundant executors
- [KYUUBI #4641] Add MaxFileSizeStrategy to limit max scan file size
- [KYUUBI #4644] Manually terminate the Py4JServer during engine shutdown
- [KYUUBI #4658] [AUTHZ] Fix InsertIntoHiveDirCommand classname so that we can extract the query in it when authorization.
- [KYUUBI #4662] [ARROW] Arrow serialization should not introduce extra shuffle for outermost limit
- [KYUUBI #4664] Fix empty relation when kill executors
- [KYUUBI #4672] [AUTHZ] Remove Support for Apache Ranger 0.6.0
- [KYUUBI #4676] [AUTHZ] Reuse users and namespaces in both tests and policy file generation
- [KYUUBI #4677] [AUTHZ] Check generated policy file in test suite
- [KYUUBI #4678] Improve FinalStageResourceManager kill executors
- [KYUUBI #4681] Set thread
CreateSparkTimeoutChecker
daemon - [KYUUBI #4683] Update
spark.sql.finalWriteStage.resourceIsolation.enabled
version - [KYUUBI #4702] [ARROW] CommandResultExec should not trigger job
- [KYUUBI #4710] [ARROW] LocalTableScanExec should not trigger job
- [KYUUBI #4710] [ARROW] Post driver-side metrics for LocalTableScanExec/CommandResultExec
- [KYUUBI #4716] [KYUUBI #4715][AUTHZ] Fix the incorrect class name of InsertIntoHiveDirCommand in table spec generator
- [KYUUBI #4717] [AUTHZ] Check Authz plugin’s spec json files in UT
- [KYUUBI #4720] [ARROW] Fix java.lang.NoSuchFieldError: IpcOption.DEFAULT for Spark-3.1/3.2
- [KYUUBI #4741] Kyuubi Spark Engine/TPC connectors support Spark 3.4
- [KYUUBI #4754] [ARROW] Use
KyuubiArrowConverters#toBatchIterator
instead of ArrowConverters#toBatchIterator
- [KYUUBI #4797] [ARROW] Reflective calls to the function
ArrowUtils#toArrowSchema
- [KYUUBI #4812] Generalize case transformation method for string type config entry
- [KYUUBI #4834] Reduce the scope of method references in Authz plugin cleanup shutdown hook
- [KYUUBI #4838] Fix spark operation exception leak in
withLocalProperties
method - [KYUUBI #4866] Add annotation for Iceberg tests in Authz plugin
- [KYUUBI #4869] [AUTHZ] Introduce table extractor for ResolvedIdentifier in Spark 3.4
- [KYUUBI #4871] [AUTHZ] Adapt plan changes for CreateNamespace and SetCatalogAndNamespace in Spark 3.4
- [KYUUBI #4873] [AUTHZ] Refactor Authz reflection with kyuubi-util’s DynMethods
- [KYUUBI #4874] [AUTHZ] Improve methods in AuthzUtils
- [KYUUBI #4875] [AUTHZ] Remove checking Spark v2 in tests since Spark v2 not supported
- [KYUUBI #4878] Delta support for Spark-3.4
- [KYUUBI #4880] [BUILD] Skip compiling useless files when making distribution
- [KYUUBI #4888] [AUTHZ] Remove filtering results for ShowDatabasesCommand in Spark 2.x
- [KYUUBI #4892] [AUTHZ] Make identifier part name comparison case insensitive in tests of PrivilegeBuilder
- [KYUUBI #4895] [ARROW] Reflective calls to the function
ArrowConverters#fromBatchIterator
- [KYUUBI #4899] [AUTHZ] Extract function from FunctionIdentifier for CreateFunction and DropFunction in Spark 3.4
- [KYUUBI #4903] [AUTHZ] Fix NoSuchElementException when listing database in CatalogImpl in Spark 3.4
- [KYUUBI #4909] [AUTHZ] Enable authz plugin tests for Spark 3.4
- [KYUUBI #4910] Extract table from ResolvedIdentifier for DropTable in Spark 3.4
- [KYUUBI #4913] Eliminate unnecessary output in ut “union an unmasked table”
- [KYUUBI #4914] [AUTHZ] Reuse extractor singleton instance with generalized getter for supported extractor types
- [KYUUBI #4915] Adapt database not exist error message change for Spark 3.4
- [KYUUBI #4916] [AUTHZ] Support ReplaceData and compatible Spark 3.4 and 3.5
- [KYUUBI #4916] Fix Iceberg merge into UT
- [KYUUBI #4917] [AUTHZ] Table owner undefined in Iceberg 1.3.0 on Spark 3.4
- [KYUUBI #4923] [ARROW] Update arguments of
ArrowUtils#toArrowSchema
function - [KYUUBI #4925] Add default catalog using
spark_catalog
with the lineage result - [KYUUBI #4935] More than target num of executors may survive after FinalStageResourceManager did kill
- [KYUUBI #4937] Cleanup spark catalog shim and renamed to catalog utils
- [KYUUBI #4952] Enhance AWS Glue default database does not exist error message on opening session
- [KYUUBI #4995] Use hadoop conf and hive conf from catalog options
- [KYUUBI #4999] [KSHC] Kyuubi-Spark-Hive-Connector support Apache Spark 3.4
- [KYUUBI #5002] Fail the engine fast when no incoming connection in CONNECTION mode
- [KYUUBI #5005] Remove default settings
spark.sql.execution.topKSortFallbackThreshold
- [KYUUBI #5007] Remove blank SparkSimpleStatsReportListener
- [KYUUBI #5009] Pass Spark Engine Log Path to Spark Conf
- [KYUUBI #5017] [KSHC] Support Parquet/Orc provider is splittable
- [KYUUBI #5018] Make kyuubi spark extension compatible with Spark 3.4
- [KYUUBI #5022] [KSHC] CreateTable should use the correct provider
- [KYUUBI #5023] [KSHC] TableIdentify don’t attach catalog
- [KYUUBI #5025] Use formatDuration instead of formatDurationVerbose in Spark UI’s engine tab
- [KYUUBI #5028] Update session hadoop conf to catalog hadoop conf
- [KYUUBI #5030] Support get query id in Spark engine
- [KYUUBI #5035] Spark engine session page display session end time and duration
- [KYUUBI #5045] Initialize EXECUTOR_POD_NAME_PREFIX_MAX_LENGTH before using
- [KYUUBI #5055] [AUTHZ] Support building function privileges in Spark 3.4
- [KYUUBI #5073] Correct the method name in SparkSQLLineageParserHelperSuite
- [KYUUBI #5075] Refine tests to adapt Spark 4.0
- [KYUUBI #5076] Add KDF engine_url
- [KYUUBI #5105] GetColumns gets duplicate column names when Spark integrates with Iceberg
- [KYUUBI #5136] Spark App may hang forever if FinalStageResourceManager killed all executors
- [KYUUBI #5148] Improve spark.driver.host assignment in Spark on K8s client mode
- [KYUUBI #5170] Identifier compatible with Spark 3.4
- [KYUUBI #5172] [AUTHZ] Check USE permissions for DESCRIBE FUNCTION
- [KYUUBI #5180] Replace deprecated classes by equivalent in scala.tools.nsc.interpreter package
- [KYUUBI #5184] Rename Kyuubi’s StageInfo to SparkStageInfo to fix class mismatch
- [KYUUBI #5188] Make server module and Spark sql engine module compilable on Scala 2.13
- [KYUUBI #5189] [AUTHZ] Make spark authz module compilable on Scala 2.13
- [KYUUBI #5191] Make Spark extension plugin compilable on Scala 2.13
- [KYUUBI #5192] Make Spark sql lineage plugin compilable on Scala 2.13
- [KYUUBI #5193] Make Spark hive connector plugin compilable on Scala 2.13
- [KYUUBI #5195] Make Spark TPC-H connector plugin compilable on Scala 2.13
- [KYUUBI #5196] Enable CI Test on Scala 2.13 and support custom or spark-core extracted Scala version for Spark’s engine
- [KYUUBI #5196] Extract spark core scala version lazily and respect engine env
- [KYUUBI #5199] Read all columns of metadata to prevent column missing
- [KYUUBI #5202] Switch to Spark 3.4 by default
- [KYUUBI #5224] Modify the README file of authz to make spark 3.4 the default version
- [KYUUBI #5225] [KSHC] Unify the exception handling of v1 and v2 during dropDatabase
- [KYUUBI #5232] In SparkOperation#cleanup always calls cancelJobGroup even though it’s in the completed state
- [KYUUBI #5257] [LINEAGE] Adapt
CreateTableAsSelect
plan to Spark 3.5 changes - [KYUUBI #5268] [AUTHZ] Extract method for enabling authorization in single call mode
- [KYUUBI #5269] Duplicated AnalyzesTablesCommand in kyuubi authz
- [KYUUBI #5271] AnalyzeTableCommand should also add table write privilege
- [KYUUBI #5291] Verify Spark engine is compatible with Spark 3.5.0
- [KYUUBI #5317] [KSHC] Hive Connector throws NotSerializableException on reading Hive Avro partitioned table
- [KYUUBI #5336] Spark extension supports Spark 3.5
- [KYUUBI #5339] Avoid using
kyuubi.session.engine.initialize.timeout
string - [KYUUBI #5414] [KSHC] Reader should not pollute the global hiveConf instance
- [KYUUBI #5426] [KSHC] Avoid use class.newInstance directly
- [KYUUBI #5550] Optimizing TPC-DS dataset generation for 10x speedup
Flink Engine
- [KYUUBI #1652] Support Flink YARN application mode
- [KYUUBI #4367] Support Flink 1.17
- [KYUUBI #4387] Remove support for Flink 1.14
- [KYUUBI #4446] Fix connections blocked by Flink insert statements
- [KYUUBI #4495] Support Flink job management statements
- [KYUUBI #4517] Fix multiple executions lead to abnormal results on Flink 1.14
- [KYUUBI #4635] Support flink time type in query operation
- [KYUUBI #4666] Support flink varbinary type in query operation
- [KYUUBI #4745] Support Flink’s LocalZonedTimestamp DataType
- [KYUUBI #4806] Support time-out incremental result fetch for Flink engine
- [KYUUBI #4861] Support Flink session idleness
- [KYUUBI #4938] Implement Kyuubi UDF in Flink engine
- [KYUUBI #5080] Fix EmbeddedExecutorFactory not thread-safe during bootstrap
- [KYUUBI #5106] Improve logs for fatal errors
- [KYUUBI #5108] Fix FileNotFoundException during Flink engine bootstrap
- [KYUUBI #5160] Refactor getNextRowSetInternal to support fetch streaming data
- [KYUUBI #5190] Explicitly name Flink bootstrap SQL in application mode
- [KYUUBI #5200] Optimize Flink application name generating
- [KYUUBI #5222] Remove unused provided dependencies in Flink SQL engine
- [KYUUBI #5238] Fix credentials may break Flink engine launch command
- [KYUUBI #5315] Propagate HIVE_CONF_DIR on launching Flink engine
- [KYUUBI #5405] Support Flink 1.18
- [KYUUBI #5531] Fix flaky FlinkOperationOnYarnSuite by enlarging the max rows setting
Other Engines
- [KYUUBI #3374] Support password authentication for Trino engine
- [KYUUBI #4412] Align the server/engine session handle for flink/hive/trino/jdbc engines
- [KYUUBI #4491] Fix Trino typo
- [KYUUBI #4522]
use:catalog
should execute before than use:database
- [KYUUBI #4544] Initial implement Kyuubi Chat Engine
- [KYUUBI #4548] Kyuubi Chat Engine supports Chinese questions and HTTP proxy
- [KYUUBI #4554] Code improvement in ChatGPTProvider
- [KYUUBI #4556] Refactor ChatGPTProvider to use
openai-java
client - [KYUUBI #4558] Make ChatGPT model ID configurable
- [KYUUBI #4559] Pretty chat engine launch command
- [KYUUBI #4711] JDBC client should catch task failed exception instead of NPE in the incremental mode
- [KYUUBI #4809] Set session user in ChatGPT request
- [KYUUBI #4810] Request and use a single choice for chat completion
- [KYUUBI #4881] JDBCEngine performs initialization sql
- [KYUUBI #4940] Implement Kyuubi UDF in Hive engine
- [KYUUBI #5120] Allow using session’s user and password for connecting database in JDBC engine
- [KYUUBI #5282] Support configure Trino session conf in
kyuubi-default.conf
- [KYUUBI #5333] Adaptive call fetchLaunchEngineResult
- [KYUUBI #5570] Fix memory leak when using incremental collect mode in JDBC engine
Server
- [KYUUBI #3653] AdminResource add list Kyuubi server api
- [KYUUBI #3739] Remove unused parameters in SessionsResource rest docs
- [KYUUBI #3872] Skip setting proxy user when keytab is provided on batch session
- [KYUUBI #3876] Update the rest api docs for open session response
- [KYUUBI #3920] Fix flaky test - distribute lock
- [KYUUBI #3957] Rename the config prefix from kyuubi.server.batch.limit to kyuubi.server.limit.batch
- [KYUUBI #4325] Support replace preparedStatement for Trino-jdbc
- [KYUUBI #4344] Expose exec pool work queue size metrics
- [KYUUBI #4364] Add metrics for user opened connections with session type
- [KYUUBI #4376] Support to config the Kyuubi service administrator with Kyuubi conf
- [KYUUBI #4388] Limit the max rows for get nextRowSet api
- [KYUUBI #4404] Support to list/close sessions in AdminResource
- [KYUUBI #4407] Adapt SLF4J2
- [KYUUBI #4424] Catch No Node Exception, when list kyuubi engines
- [KYUUBI #4439] Add list/close operation method for AdminResource
- [KYUUBI #4462] Fix variable usage issue in
SessionManager#stop
- [KYUUBI #4464] Simplify and improve log for JDBCMetadataStore
- [KYUUBI #4467] Tolerate Driver Pod ephemerally invisible after submitting
- [KYUUBI #4472] add session/operation methods in AdminRestApi
- [KYUUBI #4480] Engine alive probe should close thrift connection on engine lost
- [KYUUBI #4482] Support to disable batch resource upload function
- [KYUUBI #4483] Enable REST frontend protocol by default
- [KYUUBI #4496] Call
super.clusterManager()
when batchConf
does not have spark.master
- [KYUUBI #4498] Support to list sessions/operations with conditions in AdminRestApi
- [KYUUBI #4501] Allow administrator to specify the user for engine admin
- [KYUUBI #4506] Return sessionType in session data
- [KYUUBI #4516] Return kyuubi instance in SessionData and OperationData
- [KYUUBI #4518] Return engine id in SessionData and post kyuubi instance in KyuubiOperationEvent
- [KYUUBI #4519] Update metadata when batch application state changed
- [KYUUBI #4523] support close engine session gracefully
- [KYUUBI #4526] Defer evaluation for GroupProvider
- [KYUUBI #4540] Support to deny some users to make connection
- [KYUUBI #4540] Create session limiter if user unlimited list or deny list nonempty
- [KYUUBI #4563] Format error log output in case of metrics json file not found
- [KYUUBI #4575] Fix the empty last line may causes the session to exit directly
- [KYUUBI #4579] Fix the unstable situation of test cases for Trino-Fronted-Service
- [KYUUBI #4584] Post the session exception to EventBus in time
- [KYUUBI #4594] Support PUT method in REST client
- [KYUUBI #4611] support all sessions api in SessionRestApi
- [KYUUBI #4618] Admin Resource list operations with sessionHandle filter
- [KYUUBI #4623] KubernetesApplicationOperation uses Informer instead of list
- [KYUUBI #4639] Support to specify confOverlay when executing statement with RESTful API
- [KYUUBI #4652] Fix JaasConfiguration ClassNotFoundException for Hadoop 3.3.4 and previous
- [KYUUBI #4653] [KYUUBI 4650] LogDivertAppender supports reading RollingFileAppender pattern
- [KYUUBI #4669] LDAP authentication allows auth user contains domain when bind.dn/pw enabled
- [KYUUBI #4688] Fix the failure to read the operation log after executing catalog and database operation
- [KYUUBI #4691] Configure FAIL_ON_UNKNOWN_PROPERTIES to false for KyuubiScalaObjectMapper
- [KYUUBI #4713] Fix false positive result in SchedulerPoolSuite
- [KYUUBI #4719] Support submission timeout for yarn application manager and get the applicationInfo in-memory
- [KYUUBI #4731] Support batch session conf advisor
- [KYUUBI #4733] Introduce Kafka event logger for server events
- [KYUUBI #4738]
AdminResource.getEngineSpace
should use primary group name on GROUP share level - [KYUUBI #4739] Add operation lock instead of locking state Enumeration
- [KYUUBI #4746] Do not recreate async request executor if has been shutdown
- [KYUUBI #4749] Fix flaky test issues in SchedulerPoolSuite
- [KYUUBI #4753] KyuubiConf.unset should not log deprecation warning
- [KYUUBI #4767] Correct the submit time for BatchJobSubmission and check applicationInfo if submitted application
- [KYUUBI #4777] Deregister event handlers when stopping server with event handler made auto-closeable
- [KYUUBI #4780] Get engine application info with interval to prevent frequent call to resource manager
- [KYUUBI #4786] Support yarn-client and yarn-cluster for YarnApplicationOperation
- [KYUUBI #4790] Initial implement Batch V2
- [KYUUBI #4791] Add helper method to simplify REST enabled judgment
- [KYUUBI #4792] Enhance hardcode session keywords and remove unused code
- [KYUUBI #4796] Expose JVM attributes to metrics
- [KYUUBI #4798] Allows BatchJobSubmission to run in sync mode
- [KYUUBI #4801] Using different engine submit timeout config for kubernetes and yarn
- [KYUUBI #4807] Fix flaky test “basic batch rest client”
- [KYUUBI #4807] Retry more times to fix flaky test “spnego batch rest client”
- [KYUUBI #4811] Do not update app info after batch or application terminated
- [KYUUBI #4813] Add the fetch orientation parameter to the /v1/operations/:operationId/log interface
- [KYUUBI #4814] Introduce Apache Atlas hook support in lineage plugin
- [KYUUBI #4816] Correct the implementation of cleanup K8s terminated appInfo
- [KYUUBI #4829] Support to expose operation metrics
- [KYUUBI #4830] Fix flaky test “support to interrupt the thrift request if remote engine is broken”
- [KYUUBI #4835] Using hive conf to check whether to apply HIVE_DELEGATION_TOKEN
- [KYUUBI #4836] Set UncaughtExceptionHandler for thread to log exception
- [KYUUBI #4840] Return cached appInfo iif both op and app are terminated
- [KYUUBI #4841] Log more info for closing session
- [KYUUBI #4842] Fix typo in etcd client config
- [KYUUBI #4843] Support multiple kubernetes contexts and namespaces
- [KYUUBI #4847] Close the session immediately when engine corrupt
- [KYUUBI #4847] Close the session immediately when engine connection closed
- [KYUUBI #4850] Change default EC spec to secp521r1 for internal session variable signature
- [KYUUBI #4855] Change socket “connection refused” message match pattern
- [KYUUBI #4857] Fix flaky test TFrontendServiceSuite
- [KYUUBI #4858] Relax test message assertion in “sync query causes engine crash”
- [KYUUBI #4859] HttpException message should not be null
- [KYUUBI #4865] Fix flaky test BackendServiceMetricSuite
- [KYUUBI #4876] fix Flaky test BackendServiceMetricSuite (#4924)
- [KYUUBI #4889] Admin command line supports list server command
- [KYUUBI #4890] Return operation metrics in OperationData and fix typo
- [KYUUBI #4893] Prevent null collection for rest dto
- [KYUUBI #4898] Fix logOperation multiple read with missing line
- [KYUUBI #4919] Fix the flaky tests in the “open batch session” functionality within the “BatchesResourceSuite”
- [KYUUBI #4920] Add OperationRestApi
- [KYUUBI #4946] Alter the order of initLoggerEventHandler
- [KYUUBI #4949] For operation getNextRowSet method, with operation lock required
- [KYUUBI #4950] Migrate Kyuubi embedded database from Derby to SQLite
- [KYUUBI #4950] Misc improvement for usage of SQLite
- [KYUUBI #4950] SQLite schema files should start from 1.8.0
- [KYUUBI #4951] Add reload4j support
- [KYUUBI #4977] Log error message when REST API invocation error occurs
- [KYUUBI #4978] Fix flaky test: close expired operations
- [KYUUBI #4978] Fix flaky test: close expired operations
- [KYUUBI #4979] Fix flaky test: support to interrupt the thrift request if remote engine is broken
- [KYUUBI #4981] Refactor code of closeBatchSession
- [KYUUBI #4985] Fix log level restore behavior of
KyuubiFunSuite#withLogAppender
- [KYUUBI #4986] Always use Files#deleteIfExists
- [KYUUBI #4994] Respect the engine type and share level for listing all engines
- [KYUUBI #4994] Support listing all engines
- [KYUUBI #4996] Support to refresh kubernetes configs dynamically
- [KYUUBI #5004] Fix typo for kubernetes allowed context and namespace check
- [KYUUBI #5010] Make Kyuubi server’s connection URL configurable
- [KYUUBI #5029] Close the alive probe session after engine session closed
- [KYUUBI #5036] Fix Operation.close not update complete timestamp
- [KYUUBI #5043] Destroy the build process when waitCompletion is false and the engine is running in cluster mode
- [KYUUBI #5050] Add admin checking in
getProxyUser
- [KYUUBI #5056] Return more helpful error message to http client
- [KYUUBI #5063] Support to filter batch with batch name
- [KYUUBI #5065] Call destroy first on killing Spark startup process to allows it release temp files
- [KYUUBI #5065] Graceful close the process when launch engine timeout
- [KYUUBI #5078] Make
kyuubi_instance
nullable in metadata table schema - [KYUUBI #5081] Minor refactor JDBCMetadataStore
- [KYUUBI #5089] Limit maximum engine startup concurrency of kyuubi server
- [KYUUBI #5130] Allow setting Zookeeper SPN using Kyuubi configuration
- [KYUUBI #5131] Create index on
metastore
.create_time
- [KYUUBI #5138] Fix flaky test BatchesResourceSuite - get batch session list
- [KYUUBI #5145] Change embedded Zookeeper server to method-local variable
- [KYUUBI #5158] Allow embedded Zookeeper binding IP address
- [KYUUBI #5165] Build Spark Driver/Executor Pod Name(Prefix) in process
- [KYUUBI #5185] Use Set collection for order-insensitive configs
- [KYUUBI #5187] Fix info message in UserFilter
- [KYUUBI #5196] Extract spark core scala version lazily and respect engine env
- [KYUUBI #5201] Allow disabling batch impl v2 on globally
- [KYUUBI #5204] Thrift HTTP FE checks req conf nullable before evaluating proxy user
- [KYUUBI #5206] Try to kill pod with label if no ApplicationInfo found to prevent pod leak
- [KYUUBI #5210] Cancel operation will cause the log file node to leak
- [KYUUBI #5213] Check config value by enum values
- [KYUUBI #5216] Workaround for negative counter in SessionLimiter
- [KYUUBI #5218] Improve logs of KubernetesApplicationOperation
- [KYUUBI #5220] Batch submitter should only block submitting stage
- [KYUUBI #5220] Batch submitted considers application state
- [KYUUBI #5243] Distinguish metadata between batch impl v2 and recovery
- [KYUUBI #5289] RESTful API should always print audit log
- [KYUUBI #5290] Batch impl v2 should pick batch jobs in FIFO
- [KYUUBI #5300] Batch v2 should not update kyuubi_instance when open session
- [KYUUBI #5305] Return dummy log when batch job before being added to session manager
- [KYUUBI #5306] YarnApplicationOperation supports proxy user
- [KYUUBI #5310] Batch session recovery should start after HTTP server getting started
- [KYUUBI #5327] Add priority field in batch session metadata table definition
- [KYUUBI #5328] Batch supports priority scheduling
- [KYUUBI #5340] AdminResourceSuite make engine idle time 3min
- [KYUUBI #5380] Create PySpark batch jobs tests for RESTful API
- [KYUUBI #5381] Change the default metrics reporter to Prometheus
- [KYUUBI #5391] Close batch session after batch operation completion for idle timeout
- [KYUUBI #5392] Add query timeout monitor on server-side in ExecuteStatement
- [KYUUBI #5408] MetadataManager tries MySQL 8 driver class first
- [KYUUBI #5412] Resolve the relative zk configuration dir based on KYUUBI_HOME
- [KYUUBI #5441] Make the configuration kyuubi.zookeeper.embedded.data.log.dir effective
- [KYUUBI #5451] Ignore NoSuchFileException during OperationLog.close()
- [KYUUBI #5499] [KYUUBI #2503] Catch any exception when closing idle session
- [KYUUBI #5513] Always redirect delete batch request to Kyuubi instance that owns batch session
- [KYUUBI #5522] Ignore main class for PySpark batch job submission
- [KYUUBI #5528] Remove duplicate properties tag and respect KYUUBI_LOG_DIR
- [KYUUBI #5566] InternalRestClient respects
kyuubi.engine.security.enabled
to add HTTP auth header - [KYUUBI #5566] Check InternalSecurityAccessor is initialized only when
kyuubi.engine.security.enabled
is true - [KYUUBI #5568] Check administrator only when security is enabled
- [KYUUBI #5568] Fix security enabled judgement
- [KYUUBI #5606] Handle engine listing request properly for users who have not created engine
Client
- [KYUUBI #3887] Fix kyuubiServerPrincipal logic in KyuubiCommands
- [KYUUBI #4305] Backport HIVE-15820: comment at the head of beeline -e
- [KYUUBI #4438] Render the batch info map in kyuubi-ctl
- [KYUUBI #4439] Add dto class for operation data
- [KYUUBI #4452] Strip the redundant leading and tailing slash of getZooKeeperNamespace.
- [KYUUBI #4479] Restore JDBC Kerberos authentication behavior for UGI.doAs
- [KYUUBI #4489] Fix missing
org.apache.commons.logging
by including jcl-over-slf4j
dependency in REST client - [KYUUBI #4492] Correct engine subdomain calculation in
kyuubi-ctl
- [KYUUBI #4508] Beeline should reset stdin after consuming init SQL file
- [KYUUBI #4581] Add KyuubiCommands parse python snippets unit test
- [KYUUBI #4609] get engineRefId in KyuubiConnection
- [KYUUBI #4619] Fix beeline with -e when there are other SQL statements before the source statement, the source statement cannot be executed normally
- [KYUUBI #4657] Building rest client to kyuubi instance including original host urls
- [KYUUBI #4962] Backport HIVE-19048: init script errors are ignored
- [KYUUBI #4965] Beeline supports
--python-mode
option and remove comments for non-python mode - [KYUUBI #4969] Run JUnit tests on beeline module
- [KYUUBI #5054] Refine the kyuubi client version properties file to prevent conflicts
- [KYUUBI #5100] Fix unpaired quote in message pattern
- [KYUUBI #5101] Remove unused StringBuilders in ResultSets
- [KYUUBI #5129] KyuubiBeeline should redirect JDK logging
- [KYUUBI #5179] Use Iterable instead of Seq in kyuubi-ctl commands
- [KYUUBI #5297] New RetryableClient get http://null server uri from metadata.kyuubiInstance
- [KYUUBI #5480] Support setting kyuubi hive jdbc client protocol version
- [KYUUBI #5564] Support to config ticket cache location in JDBC URL
Web UI
Documentation
Building, Infrastructure and Dependency
Credits
Last but not least, this release would not have been possible without the following contributors:
- Deng An
- GitHub Bot
- CavemanIV
- Fu Chen
- Shaoyun Chen
- Chao Chen
- Derick Cypho
- Yang Du
- FourSpaces
- Xu Guo
- Karsonnel
- Denis Krivenko
- Kyofin
- Pengqi Li
- Xieming Li
- Guanhua Li
- Bowen Liang
- Tianlin Liao
- Hanna Liashchuk
- Paul Lin
- Senmiao Liu
- Peiyue Liu
- Naijie Liu
- Chenliang Lu
- Ruilei Ma
- Omkar Makhare
- Drake Youngkun Min
- Sidhant Nagpal
- Cheng Pan
- QianyongY
- Anurag Rajawat
- Rojin Raju
- Fei Wang
- Zhen Wang
- Kang Wang
- Miao Wang
- Bruce Wong
- XorSum
- Junjie Xu
- Binjie Yang
- Remzi Yang
- Kent Yao
- Xianxun Ye
- Kaifei Yi
- Xiduo You
- Ruguo Yu
- David Yuan
- Qiang Zhang
- Yaodong Zhang
- Yangming Zhao
- He Zhao
- Min Zhao
- Yifan Zhou
- Yi Zhu
- Yaogai Zhu
- Alex Zou
- Junjie Zu
- biangjuang
- camper42
- fantasticKe
- huangzhir
- huapan123456
- liaoyt
- mans2singh
- mrtisttt
- phyyou
- rhh777
- runzhliu
- touchida
- uicosp
- wangyepeng2
- weixi62961
- yehere
2023 Nov 7