[ 
https://issues.apache.org/jira/browse/HIVE-22415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17246960#comment-17246960
 ] 

David Mollitor edited comment on HIVE-22415 at 12/10/20, 2:08 AM:
------------------------------------------------------------------

OK, just wanted to provide an update here.

 I have been working hard on getting Hadoop 3.3 working with Hive, so that JDK 
11 can be supported, and it's been a challenge. [HIVE-24484]

I have worked through some of the initial pain points, but I got stuck.  Hadoop 
introduced a new RPC mechanism using Google Protobuf v3.  Some of the LLAP 
stuff was built on top of the existing Hadoop RPC code with Protobuf2.  It 
seems that Hadoop tried to allow for interoperability between the two RPCs, 
however, loading one version of the RPC engine blocks the loading of the other 
one (first one wins).  I think this becomes an issue for QTests since the tests 
may spin up an LLAP and a Hadoop mini cluster in the same classloader context. 
Simply loading the Protobuf3 Hadoop RPC (NameNode) code blocks the loading of 
the Protobuf2 Hadoop RPC (LLAP) code.  Without any changes on the Hadoop side 
to better support this setup, the LLAP code needs to be migrated to use 
Protobuf3 and to use the Hadoop 3rd part JAR with its shaded Protobuf version.

https://github.com/apache/hadoop/blob/0a45bd034e1ce08c556227bb2c815c15be17cf10/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java#L63-L67

https://github.com/apache/hadoop/blob/0a45bd034e1ce08c556227bb2c815c15be17cf10/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java#L70-L74


was (Author: belugabehr):
OK, just wanted to provide an update here.

 I have been working hard on getting Hadoop 3.3 working with Hive, so that JDK 
11 can be supported, and it's been a challenge. [HIVE-24484]

I have worked through some of the initial pain points, but I got stuck.  Hadoop 
introduced a new RPC mechanism using Google Protobuf v3.  Some of the LLAP 
stuff was built on top of the existing Hadoop RPC code with Protobuf2.  It 
seems that Hadoop tried to all for interoperability between the two RPCs, 
however, loading one version of the RPC engine blocks the loading of the other 
one (first one wins).  I think this becomes an issue for QTests since the tests 
may spin up an LLAP and a Hadoop mini cluster in the same classloader context. 
Simply loading the Protobuf3 Hadoop RPC (NameNode) code blocks the loading of 
the Protobuf2 Hadoop RPC (LLAP) code.  Without any changes on the Hadoop side 
to better support this setup, the LLAP code needs to be migrated to use 
Protobuf3 and to use the Hadoop 3rd part JAR with its shaded Protobuf version.

https://github.com/apache/hadoop/blob/0a45bd034e1ce08c556227bb2c815c15be17cf10/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java#L63-L67

https://github.com/apache/hadoop/blob/0a45bd034e1ce08c556227bb2c815c15be17cf10/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java#L70-L74

> Upgrade to Java 11
> ------------------
>
>                 Key: HIVE-22415
>                 URL: https://issues.apache.org/jira/browse/HIVE-22415
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Critical
>              Labels: pull-request-available
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> Upgrade Hive to Java JDK 11



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to