Hi folks!

Over in HBASE-20331 I'm trying to polish up our story around how
downstreamers make use of our shaded artifacts. As a part of that I'd
like have them present as a part of a "normal" hbase installation.

Previously when we've discussed this topic, the assumption was
downstream folks would package up the shaded client with their
application themselves. Presumably this would be done via maven or the
like.

Having worked with them for awhile, I think we're better off including
them after all.

1) If most applications are going to use the shaded clients, then by
not shipping them we're encouraging a situation where you end up with
a copy per application.

2) If we ship them we can simplify the default path for some uses,
namely making hbase mapredcp return the shaded mapreduce client.
Similarly, we could make a "client classpath" command that gave the
shaded artifact as an alternative to the current bloat in the hbase
classpath

3) If we ship them we can update the docs that walk through using the
example mapreduce tools to make use of the shaded mapreduce client. If
we don't make that update we'll essentially have docs that say "here's
how you run _our_ MR jobs that talk to HBase, but you shouldn't do
that when running _yours_", which is confusing.

I have a POC patch for just adding them up on HBASE-20615. It keeps
them out of the normal server classpath entirely.

An alternative is that I could help Josh finish up HBASE-19735 "create
a minimal client tarball" and we could start pushing folks to install
it on nodes that they expect to use for connecting to hbase. (I'd want
to bring it back into 2.1 in that case.)

What do folks think?

Reply via email to