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

Josh Elser commented on HBASE-20333:
------------------------------------

{quote}instead, we should have two artifacts: one that just lists Hadoop as a 
prerequisite and one that still includes the rewritten-but-not-relocated Hadoop 
classes.
{quote}
What's the use-case you have in mind for a jar with Hadoop provided but not 
relocated? Custom mapreduce jobs that use both Hadoop and HBase APIs?

If you would have asked me on the spot, I think I'd have said that an HBase 
shaded jar just requires the Hadoop shaded jar and we move on. Maybe the 
problem is that we depend on things from Hadoop that aren't included in that 
shaded jar?

Thanks for your efforts here!

> break up shaded client into one with no Hadoop and one that's standalone
> ------------------------------------------------------------------------
>
>                 Key: HBASE-20333
>                 URL: https://issues.apache.org/jira/browse/HBASE-20333
>             Project: HBase
>          Issue Type: Sub-task
>          Components: shading
>    Affects Versions: 2.0.0
>            Reporter: Sean Busbey
>            Assignee: Sean Busbey
>            Priority: Critical
>             Fix For: 3.0.0, 2.1.0
>
>         Attachments: HBASE-20333.WIP.0.patch
>
>
> there are contexts where we want to stay out of our downstream users way wrt 
> dependencies, but they need more Hadoop classes than we provide. i.e. any 
> downstream client that wants to use both HBase and HDFS in their application, 
> or any non-MR YARN application.
> Now that Hadoop also has shaded client artifacts for Hadoop 3, we're also 
> providing less incremental benefit by including our own rewritten Hadoop 
> classes to avoid downstream needing to pull in all of Hadoop's transitive 
> dependencies.
> right now those users need to ensure that any jars from the Hadoop project 
> are loaded in the classpath prior to our shaded client jar. This is brittle 
> and prone to weird debugging trouble.
> instead, we should have two artifacts: one that just lists Hadoop as a 
> prerequisite and one that still includes the rewritten-but-not-relocated 
> Hadoop classes.
> We can then use docs to emphasize when each of these is appropriate to use.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to