Vihang Karajgaonkar has uploaded a new patch set (#6). ( 
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
2. Ran full-suite of tests using the private jenkins job against HMS-2
3. Running full-tests against HMS-3 will need more work like supporting
Tez in the mini-cluster (for dataloading) and HMS transaction support
since HMS3 create transactional tables by default.

Notes:
1. Patch uses a custom build of Hive to be deployed in mini-cluster. This
build has the fixes for HIVE-21596
2. The Hive 3.1 does not include some of the patches like
HIVE-21077. Some of the recent code in Impala depends on that patch to
exist in hive. We will need to port HIVE-21077 to Hive 3.1.0 in order to
compile against Hive 3.1.0 jars. I will continue working on getting
this merged along with HIVE-21586

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/analysis/ToSqlUtils.java
M fe/src/main/java/org/apache/impala/catalog/FeHBaseTable.java
M fe/src/main/java/org/apache/impala/catalog/MetaStoreClientPool.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
A fe/src/main/java/org/apache/impala/util/MetadataFormatUtils.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 fe/src/test/java/org/apache/impala/testutil/EmbeddedMetastoreClientPool.java
M impala-parent/pom.xml
A shaded-deps/.gitignore
A shaded-deps/CMakeLists.txt
A shaded-deps/dependency-reduced-pom.xml
A shaded-deps/pom.xml
M testdata/bin/run-hive-server.sh
M tests/authorization/test_owner_privileges.py
M tests/common/sentry_cache_test_suite.py
M tests/custom_cluster/test_permanent_udfs.py
35 files changed, 1,275 insertions(+), 292 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/05/13005/6
--
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: newpatchset
Gerrit-Change-Id: I45a4dadbdfe30a02f722dbd917a49bc182fc6436
Gerrit-Change-Number: 13005
Gerrit-PatchSet: 6
Gerrit-Owner: Vihang Karajgaonkar <vih...@cloudera.com>
Gerrit-Reviewer: Csaba Ringhofer <csringho...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Joe McDonnell <joemcdonn...@cloudera.com>
Gerrit-Reviewer: Philip Zeyliger <phi...@cloudera.com>
Gerrit-Reviewer: Sudhanshu Arora <sudhan...@cloudera.com>
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: Vihang Karajgaonkar <vih...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <borokna...@cloudera.com>

Reply via email to