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)