Details
Description
Right now Spark SQL is very coupled to a specific version of Hive for two primary reasons.
- Metadata: we use the Hive Metastore client to retrieve information about tables in a metastore.
- Execution: UDFs, UDAFs, SerDes, HiveConf and various helper functions for configuration.
Since Hive is generally not compatible across versions, we are currently maintain fairly expensive shim layers to let us talk to both Hive 12 and Hive 13 metastores. Ideally we would be able to talk to more versions of Hive with less maintenance burden.
This task is proposing that we separate the hive version that is used for communicating with the metastore from the version that is used for execution. In doing so we can significantly reduce the size of the shim by only providing compatibility for metadata operations. All execution will be done with single version of Hive (the newest version that is supported by Spark SQL).
Attachments
Issue Links
1.
|
Create an isolated classloader for the Hive Client. |
|
Resolved | Michael Armbrust |
2.
|
Refactor existing code to use the isolated client |
|
Resolved | Michael Armbrust |
3.
|
Remove Hive Shim code |
|
Resolved | Cheolsoo Park |
4.
|
Support for pushing predicates down to metastore for partition pruning |
|
Resolved | Cheolsoo Park |
5.
|
Handle drivers for Metastore JDBC |
|
Resolved | Michael Armbrust |
6.
|
Upgrade Hive to 1.2 |
|
Resolved | Steve Loughran |
7.
|
Add support for connecting to Hive 0.14 metastore |
|
Resolved | Marcelo Masiero Vanzin |
8.
|
Add support for connecting to Hive 1.0 (0.14.1) |
|
Resolved | Marcelo Masiero Vanzin |
9.
|
Add support for connecting to Hive 1.1 |
|
Resolved | Marcelo Masiero Vanzin |
10.
|
Generalize predicate pushdown into the metastore |
|
Resolved | Michael Armbrust |
11.
|
Fallback when metastore partition pruning pushdown |
|
Resolved | Unassigned |
12.
|
Feature flag for metastore partitioning |
|
Resolved | Michael Armbrust |
13.
|
Support setting the right schema & serde when writing to Hive metastore |
|
Resolved | Cheng Hao |