We have a custom User Defined Function that extends UDF - I'll admit some
ignorance, as I inherited this code, but UDF is a class that comes from
hive-exec, so it doesn't seem true that hive-exec is not intended for
external usage. That having been said, my original question is why there
are classes from commons-lang that are simply duplicated in the code base.
This is bad form at best, but causes class collisions and thus duplicate
class warnings.

On Mon, Mar 25, 2013 at 2:48 PM, Owen O'Malley <omal...@apache.org> wrote:

> Hive-exec isn't meant for external usage. It is the bundled jar of Hive's
> runtime dependencies that are required for Hive's MapReduce tasks. It
> consists of :
>
> hive-common
> hive-ql
> hive-serde
> hive-shims
> thrift
> commons-lang
> json
> avro
> avro-mapred
> java-ewah
> javolution
> protobuf-java
>
> -- Owen
>
>
> On Mon, Mar 25, 2013 at 11:42 AM, Dave Winterbourne <
> dave.winterbou...@gmail.com> wrote:
>
> > I have been working on eliminating duplicate class warnings in my maven
> > build, and in the end discovered that there are two classes from apache
> > commons-lang that are bundled with hive-exec:
> >
> > jar tf hive-0.10.0-bin//lib/hive-exec-0.10.0.jar | grep
> > org/apache/commons/lang/
> > org/apache/commons/lang/
> > org/apache/commons/lang/StringUtils.class
> > org/apache/commons/lang/WordUtils.class
> >
> > Why are these classes bundled with hive as opposed to just using
> > commons-lang? If there truly is a need for custom functionality, why not
> > put it in a different class to avoid this collision?
> >
>

Reply via email to