Go to file
ulysses-you fecdba32a7
[KYUUBI #451] Support query auto timeout cancel on thriftserver
![ulysses-you](https://badgen.net/badge/Hello/ulysses-you/green) [![Closes #451](https://badgen.net/badge/Preview/Closes%20%23451/blue)](https://github.com/yaooqinn/kyuubi/pull/451) ![200](https://badgen.net/badge/%2B/200/red) ![17](https://badgen.net/badge/-/17/green) ![27](https://badgen.net/badge/commits/27/yellow) ![Target Issue](https://badgen.net/badge/Missing/Target%20Issue/ff0000) ![Test Plan](https://badgen.net/badge/Missing/Test%20Plan/ff0000) ![Feature](https://badgen.net/badge/Label/Feature/) [<img width="16" alt="Powered by Pull Request Badge" src="https://user-images.githubusercontent.com/1393946/111216524-d2bb8e00-85d4-11eb-821b-ed4c00989c02.png">](https://pullrequestbadge.com/?utm_medium=github&utm_source=yaooqinn&utm_campaign=badge_info)<!-- PR-BADGE: PLEASE DO NOT REMOVE THIS COMMENT -->

<!--
Thanks for sending a pull request!

Here are some tips for you:
  1. If this is your first time, please read our contributor guidelines: https://kyuubi.readthedocs.io/en/latest/community/contributions.html
  2. If the PR is related to an issue in https://github.com/yaooqinn/kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, e.g., '[KYUUBI #XXXX] Your PR title ...'.
  3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][KYUUBI #XXXX] Your PR title ...'.
-->

### _Why are the changes needed?_
<!--
Please clarify why the changes are needed. For instance,
  1. If you add a feature, you can talk about the use case of it.
  2. If you fix a bug, you can clarify why it is a bug.
-->
Manual cherry-pick some Spark patch into Kyuubi.
1. [Support query auto timeout cancel on thriftserver](https://github.com/apache/spark/pull/29933)
2. [Add config to control if cancel invoke interrupt task on thriftserver](https://github.com/apache/spark/pull/30481)

In order to keep backward with early Spark version, we hard code the config key instead of refer to Spark SQLConf.

Note that, the exists timeout of operator (`kyuubi.operation.idle.timeout`) is to cancel that client has no access with engine. That said if a query run a long time and the client is alive, the query would not be cancelled. Then the new added config `spark.sql.thriftServer.queryTimeout` can handle this case.

### _How was this patch tested?_
Add new test.

Closes #451 from ulysses-you/query-timeout.

212f579 [ulysses-you] docs
9206538 [ulysses-you] empty flaky test
ddab9bf [ulysses-you] flaty test
1da02a0 [ulysses-you] flaty test
edfadf1 [ulysses-you] nit
3f9920b [ulysses-you] address comment
9492c48 [ulysses-you] correct timeout
5df997e [ulysses-you] nit
2124952 [ulysses-you] address comment
192fdcc [ulysses-you] fix tets
d684af6 [ulysses-you] global config
1d1adda [ulysses-you] empty
967a63e [ulysses-you] correct import
128948e [ulysses-you] add session conf in session
144d51b [ulysses-you] fix
a90248b [ulysses-you] unused import
c90386f [ulysses-you] timeout move to operation manager
d780965 [ulysses-you] update docs
a5f7138 [ulysses-you] fix test
f7c7308 [ulysses-you] config name
7f3fb3d [ulysses-you] change conf place
97a011e [ulysses-you] unnecessary change
0953a76 [ulysses-you] move test
38ac0c0 [ulysses-you] Merge branch 'master' of https://github.com/yaooqinn/kyuubi into query-timeout
71bea97 [ulysses-you] refector implementation
35ef6f9 [ulysses-you] update conf
0cad8e2 [ulysses-you] Support query auto timeout cancel on thriftserver

Authored-by: ulysses-you <ulyssesyou18@gmail.com>
Signed-off-by: Kent Yao <yao@apache.org>
2021-03-26 14:04:09 +08:00
.github [KYUUBI #432] [LICENSE] Introduce Apache Rat 2021-03-14 00:57:25 +08:00
bin [KYUUBI #455] Fix Hadoop Version for Dev start stript 2021-03-26 11:57:36 +08:00
build [KYUUBI #416] Detected Dependency List Change for better dependency management 2021-03-11 11:48:14 +08:00
conf [KYUUBI #433] [MINOR] Update conf template 2021-03-14 00:29:22 +08:00
dev [KYUUBI #449] Add Basic Metrics Service framework 2021-03-24 18:56:56 +08:00
docs [KYUUBI #451] Support query auto timeout cancel on thriftserver 2021-03-26 14:04:09 +08:00
externals [KYUUBI #451] Support query auto timeout cancel on thriftserver 2021-03-26 14:04:09 +08:00
kyuubi-assembly [KYUUBI #449] Add Basic Metrics Service framework 2021-03-24 18:56:56 +08:00
kyuubi-common [KYUUBI #451] Support query auto timeout cancel on thriftserver 2021-03-26 14:04:09 +08:00
kyuubi-ha [KYUUBI #417] [MINOR] Remove all unused import 2021-03-15 20:05:08 +08:00
kyuubi-main [KYUUBI #451] Support query auto timeout cancel on thriftserver 2021-03-26 14:04:09 +08:00
kyuubi-metrics [KYUUBI #454] Fix metrics Versions 2021-03-26 11:56:20 +08:00
licenses-binary [KYUUBI #430] [LICENSE] Update license 2021-03-14 00:56:41 +08:00
_config.yml [KYUUBI #295][INFRA] Add licenses for some yml files 2021-01-18 10:24:13 +08:00
.gitignore [KYUUBI #336] Fix a race in Kyuubi start and stop 2021-02-02 20:46:06 +08:00
.readthedocs.yml [KYUUBI #295][INFRA] Add licenses for some yml files 2021-01-18 10:24:13 +08:00
.travis.yml [KYUUBI #404] How To Use Spark Dynamic Resource Allocation (DRA) in Kyuubi 2021-03-08 18:27:49 +08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018-03-07 15:54:22 +08:00
codecov.yml [KYUUBI #404] How To Use Spark Dynamic Resource Allocation (DRA) in Kyuubi 2021-03-08 18:27:49 +08:00
LICENSE [KYUUBI #430] [LICENSE] Update license 2021-03-14 00:56:41 +08:00
LICENSE-binary [KYUUBI #430] [LICENSE] Update license 2021-03-14 00:56:41 +08:00
pom.xml [KYUUBI #449] Add Basic Metrics Service framework 2021-03-24 18:56:56 +08:00
README.md logo 2021-03-19 21:08:52 +08:00
scalastyle-config.xml Create Kyuubi Project Spark SQL Engine 2020-06-09 10:34:47 +08:00

License GitHub top language GitHub release codecov HitCount Travis GitHub Workflow Status Documentation Status DepShield Badge

Kyuubi is a high-performance universal JDBC and SQL execution engine, built on top of Apache Spark. The goal of Kyuubi is to facilitate users to handle big data like ordinary data.

It provides a standardized JDBC interface with easy-to-use data access in big data scenarios. End-users can focus on developing their own business systems and mining data value without having to be aware of the underlying big data platform (compute engines, storage services, metadata management, etc.).

Kyuubi relies on Apache Spark to provide high-performance data query capabilities, and every improvement in the engine's capabilities can help Kyuubi's performance make a qualitative leap. In addition, Kyuubi improves ad-hoc responsiveness through the engine caching, and enhances concurrency through horizontal scaling and load balancing. It provides complete authentication and authentication services to ensure data and metadata security. It provides robust high availability and load balancing to help you guarantee the SLA commitments. It provides a two-level elastic resource management architecture to effectively improve resource utilization while covering the performance and response requirements of all scenarios including interactive, or batch processing and point queries, or full table scans. It embraces Spark and builds an ecosystem on top of it, which allows Kyuubi to quickly expand its existing ecosystem and introduce new features, such as cloud-native support and Data Lake/Lake House support.

The vision of Kyuubi is to build on top of Apache Spark and Data Lake technologies to unify the portal and become an ideal data lake management platform. It can support data processing e.g. ETL, and analytics e.g. BI in a pure SQL way. All workloads can be done on one platform, using one copy of data, with one SQL interface.

Online Documentation

Since Kyuubi 1.0.0, the Kyuubi online documentation is hosted by https://readthedocs.org/. You can find the specific version of Kyuubi documentation as listed below.

For 0.8 and earlier versions, please check the Github Pages directly.

Quick Start

Ready? Getting Started with Kyuubi.

Contributing

All bits of help are welcome. You can make various types of contributions to Kyuubi, including the following but not limited to,

  • Help new users in chat channel or share your success stories with us - Gitter
  • Improve Documentation - Documentation Status
  • Test releases - GitHub release
  • Improve test coverage - codecov
  • Report bugs and better help developers to reproduce
  • Review changes
  • Make a pull request
  • Promote to others
  • Click the star button if you like this project

Before you start, we recommend that you check the Contribution Guidelines first.

Aside

The project took its name from a character of a popular Japanese manga - Naruto. The character is named Kyuubi Kitsune/Kurama, which is a nine-tailed fox in mythology. Kyuubi spread the power and spirit of fire, which is used here to represent the powerful Apache Spark. Its nine tails stands for end-to-end multi-tenancy support of this project.

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details.