Vihang Karajgaonkar has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/13005


Change subject: IMPALA-8369 : Impala should be able to interoperate with Hive 
3.1.0
......................................................................

IMPALA-8369 : Impala should be able to interoperate with Hive 3.1.0

This change upgrades the hive dependencies of Impala to use Hive 3.1.0
based binaries. Most of the changes in this patch are based off patches
provided by Todd (links available in JIRA).

Upgrading the dependencies allows us to work with both Hive 3.1.0 and
Hive 2.1.0 in the same code line. In order to do this, the patch
trims down a lot of unnecessary hive dependencies of the front end code
by creating a shaded-deps module. The pom.xml of shaded-deps includes
only the files from Hive source which Impala depends for compilation.

Additionally, it also uses a custom build of Hive which is based of
Hive 3.1.0. This custom build includes patches for HIVE-21596 and
HIVE-21586 which are needed by Impala so that it can compile against
Hive-3 libraries and be able to talk to HMS-2.x metastore. Once these
patches are merged we can get rid of this custom build and rely on more
official sources of Hive builds.

The patch also changes impala-config.sh so that it always downloads the
Hive-3 libraries from the toolchain. The code is always built using
Hive-3 jars. However, based on the value of USE_CDP_HIVE, the
minicluster is deployed using Hive-3 or Hive-2 binaries. Since Impala
implements HiveServer2's TCLIService.thrift interface, it requires us to
use the existing mechanism of copying the hive-2/api TCLIService.thrift to
hive-3/api. It also adds a few environment variables which point to the
metastore's thrift file and the CDH Hive version.

Testing:
1. Code compiles and runs against both HMS-3 and HMS-2

Notes:
Testing is still a WIP. Will trigger a full-suite of tests for both when
USE_CDP_HIVE is true and USE_CDP_HIVE is false. Will update the patch as
and when the issues are found in the tests.

Change-Id: I45a4dadbdfe30a02f722dbd917a49bc182fc6436
---
M CMakeLists.txt
M README.md
M bin/bootstrap_toolchain.py
M bin/impala-config.sh
M bin/set-classpath.sh
M common/thrift/.gitignore
M common/thrift/CMakeLists.txt
M fe/CMakeLists.txt
M fe/pom.xml
M fe/src/main/java/org/apache/impala/analysis/StringLiteral.java
M fe/src/main/java/org/apache/impala/catalog/FeHBaseTable.java
M fe/src/main/java/org/apache/impala/catalog/TableLoader.java
M fe/src/main/java/org/apache/impala/catalog/events/MetastoreEvents.java
M 
fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java
M fe/src/main/java/org/apache/impala/catalog/local/DirectMetaProvider.java
M fe/src/main/java/org/apache/impala/compat/MetastoreShim.java
M fe/src/main/java/org/apache/impala/hive/executor/UdfExecutor.java
M fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java
M fe/src/main/java/org/apache/impala/service/DescribeResultFactory.java
M fe/src/main/java/org/apache/impala/service/MetadataOp.java
M 
fe/src/test/java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
M fe/src/test/java/org/apache/impala/hive/executor/UdfExecutorTest.java
M impala-parent/pom.xml
A shaded-deps/.gitignore
A shaded-deps/CMakeLists.txt
A shaded-deps/pom.xml
26 files changed, 442 insertions(+), 266 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/05/13005/2
--
To view, visit http://gerrit.cloudera.org:8080/13005
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I45a4dadbdfe30a02f722dbd917a49bc182fc6436
Gerrit-Change-Number: 13005
Gerrit-PatchSet: 2
Gerrit-Owner: Vihang Karajgaonkar <vih...@cloudera.com>
Gerrit-Reviewer: Joe McDonnell <joemcdonn...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to