Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
MapReduce >> mail # user >> Overriding remote classes


Copy link to this message
-
Re: Overriding remote classes
On 12/14/2011 08:20 AM, John Armstrong wrote:
> Hi, there.
>
> I've run into an odd situation, and I'm wondering if there's a way around
> it; I'm trying to use Jackson for some JSON serialization in my program,
> and I wrote/unit-tested it to work with Jackson 1.9.  Then, in integration
> testing, I started to see some weird version incompatibilities and
> AbstractMethodErrors.  Indeed, some digging revealed that our Hadoop
> installation (CDH3b3, incidentally) has the Jackson 1.5.2 JARs in its
> $HADOOP_HOME/lib directory which, as I understand it, forms the basis of
> the remote JVM classpath.
>
> So, for now I've rewritten our code to use the 1.5.2 libraries, but it's
> ugly and hacky in some places due to Jackson 1.5.2 not having a sensible
> TypeFactory or anything like that.  I'm wondering, though, if there's a way
> to make the remove JVM use *our* versions of the Jackson libraries
> (packaged in the fat JAR) instead of the ones that come with Hadoop.
>
> And no, in deployment we will not be able to control the cluster ourselves
> and rip out the old JARs or replace them with updated ones.

I ran into the same (known) issue.  (See:
https://issues.apache.org/jira/browse/MAPREDUCE-1700)

Doesn't look like there's a solution yet.

DR