Skip to content

Commit

Permalink
[KYUUBI #2337] [DOCS] Access Kyuubi with Kyuubi JDBC Driver
Browse files Browse the repository at this point in the history
### _Why are the changes needed?_

Access Kyuubi with Kyuubi-Hive-JDBC Documentation is missing
Close #2337

### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [x] Add screenshots for manual tests if appropriate

- [ ] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #2339 from zwangsheng/ISSUE/#2337.

Closes #2337

d4154e6 [zwangsheng] fix mvn url
510708c [zwangsheng] fix
c4bb936 [zwangsheng] KYUUBI-2337

Authored-by: zwangsheng <2213335496@qq.com>
Signed-off-by: ulysses-you <ulyssesyou@apache.org>
  • Loading branch information
zwangsheng authored and ulysses-you committed Apr 13, 2022
1 parent 8a525e5 commit 659d981
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/client/index.rst
Expand Up @@ -24,4 +24,5 @@ Client Documentation
:numbered: 2

hive_jdbc
kyuubi_jdbc
kerberized_kyuubi
101 changes: 101 additions & 0 deletions docs/client/kyuubi_jdbc.md
@@ -0,0 +1,101 @@
<!--
- 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.
-->

<div align=center>

![](../imgs/kyuubi_logo.png)

</div>

# Access Kyuubi with Kyuubi JDBC Drivers

## Install Kyuubi JDBC

For programing, the easiest way to get `kyuubi-hive-jdbc-shaded` is from [the maven central](https://mvnrepository.com/artifact/org.apache.kyuubi/kyuubi-hive-jdbc-shaded). For example,

- **maven**
```xml
<dependency>
<groupId>org.apache.kyuubi</groupId>
<artifactId>kyuubi-hive-jdbc-shaded</artifactId>
<version>1.5.0-incubating</version>
</dependency>
```

- **sbt**
```scala
libraryDependencies += "org.apache.kyuubi" % "kyuubi-hive-jdbc-shaded" % "1.5.0-incubating"
```

- **gradle**
```gradle
implementation group: 'org.apache.kyuubi', name: 'kyuubi-hive-jdbc-shaded', version: '1.5.0-incubating'
```

For BI tools, please refer to [Quick Start](../quick_start/index.html) to check the guide for the BI tool used.
If you find there is no specific document for the BI tool that you are using, don't worry, the configuration part for all BI tools are basically the same.
Also, we will appreciate if you can help us to improve the document.

## JDBC URL

JDBC URLs have the following format:

```
jdbc:hive2://<host>:<port>/<dbName>;<sessionVars>?<kyuubiConfs>#<[spark|hive]Vars>
```

JDBC Parameter | Description
---------------| -----------
host | The cluster node hosting Kyuubi Server.
port | The port number to which is Kyuubi Server listening.
dbName | Optional database name to set the current database to run the query against, use `default` if absent.
sessionVars | Optional `Semicolon(;)` separated `key=value` parameters for the JDBC/ODBC driver. Such as `user`, `password` and `hive.server2.proxy.user`.
kyuubiConfs | Optional `Semicolon(;)` separated `key=value` parameters for Kyuubi server to create the corresponding engine, dismissed if engine exists.
[spark&#124;hive]Vars | Optional `Semicolon(;)` separated `key=value` parameters for Spark/Hive variables used for variable substitution.

## Example

```
jdbc:hive2://localhost:10009/default;hive.server2.proxy.user=proxy_user?kyuubi.engine.share.level=CONNECTION;spark.ui.enabled=false#var_x=y
```

## Alert

If you already have `hadoop-common` dependency in your classpath, you should exclude `hadoop-client-api` from `kyuubi-hive-jdbc-shaded` to avoid class confliction. For example:

- **maven**
```xml
<dependency>
<groupId>org.apache.kyuubi</groupId>
<artifactId>kyuubi-hive-jdbc-shaded</artifactId>
<version>1.5.0-incubating</version>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client-api</artifactId>
</exclusion>
</dependency>
```

- **sbt**
```scala
libraryDependencies += "org.apache.kyuubi" % "kyuubi-hive-jdbc-shaded" % "1.5.0-incubating" exclude("org.apache.hadoop", "hadoop-client-api")
```

- **gradle**
```gradle
implementation (group: 'org.apache.kyuubi', name: 'kyuubi-hive-jdbc-shaded', version: '1.5.0-incubating') { exclude group: 'org.apache.hadoop', module: 'hadoop-client-api' }
```

0 comments on commit 659d981

Please sign in to comment.