[KYUUBI-SHADED #20] Introduce `kyuubi-shaded-hive-service-rpc`

### _Why are the changes needed?_

This PR aims to introduce a new pre-shaded module `kyuubi-shaded-hive-service-rpc` for Kyuubi project, which contains

- org.apache.hive:hive-service-rpc:3.1.3
- org.apache.thrift:libfb303:0.9.3
- org.apache.thrift:libthrift:0.9.3-1

Kyuubi uses Hive Service RPC (a thrift-based protocol) as the internal RPC protocol, currently, we do shading during each engine jar packaging, it works well for most engines except for Hive engines, such shading would corrupt the Hive method invocation because the same package name, i.e.

```
import org.apache.hive.service.rpc.thrift.TGetInfoReq

def method(
  // this is part of Kyuubi server-engine internal RPC
  getInfoReq: TGetInfoReq) {
  // it's a Hive internal method invocation
  hiveObj.hiveMethod(getInfoReq)
}
```

if we switch to the pre-shaded `kyuubi-shaded-hive-service-rpc`, it could be solved as
```
import org.apache.kyuubi.shaded.hive.service.rpc.thrift.TGetInfoReq
import org.apache.hive.service.rpc.thrift.{TGetInfoReq => HiveTGetInfoReq}

def method(
  // this is part of Kyuubi server-engine internal RPC
  getInfoReq: TGetInfoReq) {
  // it's a Hive internal method invocation
  val hiveGetInfoReq: HiveTGetInfoReq = HiveRpcUtils.asHive(getInfoReq)
  hiveObj.hiveMethod(hiveGetInfoReq)
}
```

In addition, `kyuubi-shaded-hive-service-rpc` also shades the Thrift runtime classes. The upcoming Hive 2.3.10, 3.2.0, 4.0.0 upgrade Thrift to 0.14+, has known incompatible changes with the current 0.9.3, pre-shaded classes also resolve the class conflicts.

### _How was this patch tested?_
- [ ] 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 #20 from pan3793/thrift.

f6126cc [Cheng Pan] short name
49cd216 [Cheng Pan] Introduce kyuubi-shaded-hive-service-rpc

Authored-by: Cheng Pan <chengpan@apache.org>
Signed-off-by: Cheng Pan <chengpan@apache.org>
5 files changed