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

Sangjin Lee commented on YARN-5667:
-----------------------------------

In principle, no. You'll find that we've already isolated the hbase test code 
into a separate module (hadoop-yarn-server-timelineservice-hbase-tests). I 
considered moving the non-test hbase code there too, but stopped. The main 
reason is bit complicated. There are two pieces of non-test hbase code that is 
under timeline service: hbase client code and hbase co-processor code.

The major difference between them is that the hbase client code needs to run 
under the hadoop yarn trunk dependencies (as that's where it needs to run) 
whereas the co-processor code needs to run under the hbase dependencies. The 
hbase tests require the hbase dependencies because of the testing utility 
dependency.

So there is not only a potential for circular dependency, but also a diamond 
dependency. If we were to separate the hbase code out of the timeline service 
module, then we may need to create 2 more modules, one for hbase client and 
another for hbase co-processor. But they have dependencies between them still. 
So we'd need to untangle them.

I know it's bit dense, but please feel free to reach out to me so we can 
discuss more.

> Move HBase backend code in ATS v2  into its separate module
> -----------------------------------------------------------
>
>                 Key: YARN-5667
>                 URL: https://issues.apache.org/jira/browse/YARN-5667
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: yarn
>            Reporter: Haibo Chen
>            Assignee: Haibo Chen
>
> The HBase backend code currently lives along with the core ATS v2 code in 
> hadoop-yarn-server-timelineservice module. Because Resource Manager depends 
> on hadoop-yarn-server-timelineservice, an unnecessary dependency of the RM 
> module on HBase modules is introduced (HBase backend is pluggable, so we do 
> not need to directly pull in HBase jars). 
> In our internal effort to try ATS v2 with HBase 2.0 which depends on Hadoop 
> 3, we encountered a circular dependency during our builds between HBase2.0 
> and Hadoop3 artifacts.
> {code}
> hadoop-mapreduce-client-common, hadoop-yarn-client, 
> hadoop-yarn-server-resourcemanager, hadoop-yarn-server-timelineservice, 
> hbase-server, hbase-prefix-tree, hbase-hadoop2-compat, 
> hadoop-mapreduce-client-jobclient, hadoop-mapreduce-client-common]
> {code}
> This jira proposes we move all HBase-backend-related code from 
> hadoop-yarn-server-timelineservice into its own module (possible name is 
> yarn-server-timelineservice-storage) so that core RM modules do not depend on 
> HBase modules any more.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to