Hi Akila,

I think getting Impala to compile against Hive 3.1 would be a modest amount
of effort. Most of it revolves around the IMPALA_HIVE_VERSION, and it would
require the Hive source (to get hive_metastore.thrift) and a maven
repository with the Hive 3.1 artifacts (which I think would be available in
the Apache maven repository).

So far, there has not been an effort to support vanilla versions of
Hadoop/Hive/etc. Contributions are definitely welcome. I think it would be
useful for it to be easy for Impala to be deployed against vanilla
deployments, but it would also a very large amount of effort to maintain.

Thanks,
Joe

On Wed, Dec 18, 2019 at 8:54 PM Akila Wajirasena <akila.wajiras...@gmail.com>
wrote:

> Thanks you Joe. I was able to start get it work by using the Hive version
> that is downloaded when building Impala.
> How ever my other questions are;
> Is it possible the use the 3.1 Hive version to build Impala?
> Also is there any plans to support vanilla version of Hive and Hadoop for
> Impala?
> I saw most of the dependencies are downloaded from Cloudera repos.
>
> Thanks & Regards,
> Akila
>
>
> On Thu, Dec 19, 2019 at 6:37 AM Joe McDonnell <joemcdonn...@cloudera.com>
> wrote:
>
>> Hi Akila,
>>
>> USE_CDP_HIVE=true uses a Hive based off of Hive's master branch, which
>> has changed quite a bit since Hive 3.1. create_table_req was introduced in
>> HIVE-21838:
>>
>> https://github.com/apache/hive/commit/1fb0107ea522730196cd3bff7b1c4a7273f25291#diff-96182be0c29b7ceda2b60e931c70ecc4R1966
>> It looks like Hive's branch-3.1 does not have HIVE-21838, so it doesn't
>> understand create_table_req.
>>
>> Thanks,
>> Joe
>>
>>
>>
>>
>> On Wed, Dec 18, 2019 at 3:47 AM Akila Wajirasena <
>> akila.wajiras...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I am trying to build impala with hive 3.1 support by enabling
>>> USE_CDP_HIVE=true.
>>> Build finishes with any issues and impala starts and connect to the hive
>>> 3.1 standalone meta store without any issue.
>>>
>>> However when I try to create a table using impala shell I get the
>>> following error;
>>> Has anyone encountered a similar issue?
>>>
>>> Query: CREATE TABLE test_123(id INT, name STRING)
>>> ERROR: ImpalaRuntimeException: Error making 'createTable' RPC to Hive
>>> Metastore:
>>> CAUSED BY: TApplicationException: Invalid method name: 'create_table_req'
>>>
>>> I1218 11:10:13.229060 62868 jni-util.cc:288]
>>> org.apache.impala.common.ImpalaRuntimeException: Error making 'createTable'
>>> RPC to Hive Metastore:
>>>         at
>>> org.apache.impala.service.CatalogOpExecutor.createTable(CatalogOpExecutor.java:2107)
>>>         at
>>> org.apache.impala.service.CatalogOpExecutor.createTable(CatalogOpExecutor.java:1936)
>>>         at
>>> org.apache.impala.service.CatalogOpExecutor.execDdlRequest(CatalogOpExecutor.java:330)
>>>         at
>>> org.apache.impala.service.JniCatalog.execDdl(JniCatalog.java:167)
>>> Caused by: org.apache.thrift.TApplicationException: Invalid method name:
>>> 'create_table_req'
>>>         at
>>> org.apache.thrift.TApplicationException.read(TApplicationException.java:111)
>>>         at
>>> org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:79)
>>>         at
>>> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_create_table_req(ThriftHiveMetastore.java:1698)
>>>         at
>>> org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.create_table_req(ThriftHiveMetastore.java:1685)
>>>         at
>>> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.create_table_with_environment_context(HiveMetaStoreClient.java:3359)
>>>         at
>>> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:990)
>>>         at
>>> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:975)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>         at
>>> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:208)
>>>         at com.sun.proxy.$Proxy4.createTable(Unknown Source)
>>>         at
>>> org.apache.impala.service.CatalogOpExecutor.createTable(CatalogOpExecutor.java:2086)
>>>         ... 3 more
>>> I1218 11:10:13.230059 62868 status.cc:124] ImpalaRuntimeException: Error
>>> making 'createTable' RPC to Hive Metastore:
>>> CAUSED BY: TApplicationException: Invalid method name: 'create_table_req'
>>>     @           0xbc38a9
>>>     @          0x129139e
>>>     @           0xbb0317
>>>     @           0xb9f0e9
>>>     @           0xca58cc
>>>     @           0xca3e4c
>>>     @           0xb91059
>>>     @          0x1028a10
>>>     @          0x101e68e
>>>     @          0x101f521
>>>     @          0x131928f
>>>     @          0x1319e39
>>>     @          0x1a5f329
>>>     @     0x7fc4313d0e24
>>>     @     0x7fc42de2b34c
>>> E1218 11:10:13.230078 62868 catalog-server.cc:112]
>>> ImpalaRuntimeException: Error making 'createTable' RPC to Hive Metastore:
>>> CAUSED BY: TApplicationException: Invalid method name: 'create_table_req'
>>> I1218 11:10:13.230155 62868 catalog-server.cc:116] ExecDdl():
>>> response=TDdlExecResponse {
>>>   01: result (struct) = TCatalogUpdateResult {
>>>     01: catalog_service_id (struct) = TUniqueId {
>>>       01: hi (i64) = 0,
>>>       02: lo (i64) = 0,
>>>     },
>>>     02: version (i64) = 0,
>>>     03: status (struct) = TStatus {
>>>       01: status_code (i32) = 2,
>>>       02: error_msgs (list) = list<string>[1] {
>>>         [0] = "ImpalaRuntimeException: Error making 'createTable' RPC to
>>> Hive Metastore: \nCAUSED BY: TApplicationException: Invalid method name:
>>> 'create_table_req'",
>>>       },
>>>     },
>>>     04: is_invalidate (bool) = false,
>>>   },
>>> }
>>>
>>>
>>> --
>>> Regards
>>> Akila Wajirasena
>>>
>>>
>>>
>>>
>
>
>
>
>

Reply via email to