Open axelborja opened 4 years ago
Getting same issue.
Unfortunately, issues do not seem to be considered since June 2019 😞
I found out the root cause of this problem is:
aws-glue-datacatalog-hive2-client
depends on aws-glue-datacatalog-client-common
,
aws-glue-datacatalog-client-common
depends on shims/shims-loader
,
shims/shims-loader
depends on shims/spark-hive-shims
shims/spark-hive-shims
needs hive-exec
version
So I decided to use the available 1.2.1.spark2 and updated the following line on aws-glue-data-catalog-client-for-apache-hive-metastore/pom.xml
:
Then it should work out the box. In case it doesn't, do the following before you proceed:
mvn clean package -DskipTests
on /shimsmvn clean package -DskipTests
on /aws-glue-datacatalog-client-commonEDIT:
If you're also going to build the Spark Client, just remember to follow the README and change spark-hive.version
back to 1.2.3-SNAPSHOT before doing it.
Let me know if that works for you!
Thanks for figuring that out and sharing it here!
Thank you @edugfilho. It seems to work fine.
I tried the approach mentioned and individual steps doesn't seem to work but when I built the package from base location, it builds the following and I am getting the following error:
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] AWSGlueDataCatalogHiveClient ....................... SUCCESS [ 0.186 s] [INFO] AwsGlueDataCatalogShims ............................ SUCCESS [ 0.002 s] [INFO] ShimsCommon ........................................ SUCCESS [ 3.153 s] [INFO] Hive2Shims ......................................... SUCCESS [ 0.841 s] [INFO] spark-hive-shims ................................... SUCCESS [ 0.871 s] [INFO] ShimsLoader ........................................ SUCCESS [ 0.883 s] [INFO] AWSGlueDataCatalogClientCommon ..................... SUCCESS [ 3.331 s] [INFO] AWSGlueDataCatalogHive2Client ...................... FAILURE [ 2.338 s] [INFO] AWSGlueDataCatalogSparkClient ...................... SKIPPED [INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project aws-glue-datacatalog-hive2-client: Compilation failure [ERROR] /usr/local/aws-glue-data-catalog-client-for-apache-hive-metastore/aws-glue-datacatalog-hive2-client/src/main/java/com/amazonaws/glue/catalog/metastore/AWSCatalogMetastoreClient.java:[117,7] error: AWSCatalogMetastoreClient is not abstract and does not override abstract method listPartitionValues(PartitionValuesRequest) in IMetaStoreClient
Any idea?
With @axelborja we open sourced the procedure in the repo tinyclues/spark-glue-data-catalog and released the distribuable via GitHub Release (available for download).
https://issues.apache.org/jira/plugins/servlet/mobile#issue/HIVE-21859
https://github.com/apache/hive/commit/9fb2238fac7707b2fbb3a33066d1f9cc077904f3
In hive 2.3.6 developmet, IMetaStoreClient interface changed with a new method "listPartitionValues" on 18 Jun 2019. AWSCatalogMetastoreClient in this repository does not implement the method yet.
simplest work around is to patch aginst hive 2.3.5.
For what it's worth, we've open sourced a fully contained build and docker image for Spark 3.1.1 (with the kubernetes deps), Hadoop 3.2.0, Hive 2.3.7, and this glue client: https://github.com/viaduct-ai/docker-spark-k8s-aws
Here, is the Dockerfile I use to build the patched hive and spark clients:
The encountered error is: