Ish Nagy created HIVE-29284:
-------------------------------

             Summary: Decouple hard hadoop-yarn-registry dependency from 
hive-exec
                 Key: HIVE-29284
                 URL: https://issues.apache.org/jira/browse/HIVE-29284
             Project: Hive
          Issue Type: Improvement
          Components: Hive
    Affects Versions: 4.2.0
            Reporter: Ish Nagy


I am tracking down some transitive dependency issues in {{spark}}, and I have 
found a potential tighter-than-necessary coupling between {{hive-exec}} and 
{{hadoop-yarn-registry}}.

{{hadoop-yarn-registry}} is definitely used from the LLAP components, but 
{{hive-exec}} seems to depend on it only at a single point, in
{noformat}
ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java
{noformat}
{noformat}
if (llapMode) {
      // localize llap client jars
      addJarLRByClass(LlapTaskSchedulerService.class, commonLocalResources);
      addJarLRByClass(LlapProtocolClientImpl.class, commonLocalResources);
      addJarLRByClass(LlapProtocolClientProxy.class, commonLocalResources);
      addJarLRByClass(RegistryOperations.class, commonLocalResources);
    }
{noformat}

Since spark uses hive-exec but does not use LLAP, my spark side dependency 
issues would go away, if the reference to this RegistryOperations.class was not 
resolved at compile time, but only at runtime. (== removing the compile time 
dependency to registry).

I'll provide a simple patch to demonstrate the idea.






--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to