Thanks for the reply. I appreciate your helpfulness. I created Jars by
following instructions at "http://blog.mafr.de/2010/07/24/maven-hadoop-job/".
So external Jars are stored in lib/ folder within a jar.
Am I summarizing this correctly:
1. If hadoop version = 0.20.203 or lower - then, there is not possible for me
to use an external jar such as "commons-lang" from apache in my application.
Any external jars packaged within my jar under "lib" directory are not
captured. This appears like a huge limitation to me?
2. If hadoop version > 0.20.204 to 1.0.x - then use
"HADOOP_USER_CLASSPATH_FIRST=true" environment variable before launching
"hadoop jar" might help. I tried this for version 0.20.205 but it didnt work.
3. If hadoop version > 2.x or formerly 0.23.x - then this can be set via API?
Is there a working version of testable jar that has these dependencies that I
can try to figure out if its my way of packaging jar or something else??
Thx
> From: ha...@cloudera.com
> Date: Mon, 9 Apr 2012 13:50:37 +0530
> Subject: Re: How do I include the newer version of Commons-lang in my jar?
> To: common-user@hadoop.apache.org
>
> Answer is a bit messy.
>
> Perhaps you can set the environment variable "export
> HADOOP_USER_CLASSPATH_FIRST=true" before you do a "hadoop jar …" to
> launch your job. However, although this approach is present in
> 0.20.204+ (0.20.205, and 1.0.x), am not sure if it makes an impact on
> the tasks as well. I don't see it changing anything but for the driver
> CP. I've not tested it - please let us know if it works in your
> environment.
>
> In higher versions (2.x or formerly 0.23.x), this is doable from
> within your job if you set "mapreduce.job.user.classpath.first" to
> true inside your job, and ship your replacement jars along.
>
> Some versions would also let you set this via
> "JobConf/Job.setUserClassesTakesPrecedence(true/false)" API calls.
>
> On Mon, Apr 9, 2012 at 11:14 AM, Sky <sky...@hotmail.com> wrote:
> > Hi.
> >
> > I am new to Hadoop and I am working on project on AWS Elastic MapReduce.
> >
> > The problem I am facing is:
> > * org.apache.commons.lang.time.DateUtils: parseDate() works OK but
> > parseDateStrictly() fails.
> > I think parseDateStrictly might be new in lang 2.5. I thought I included all
> > dependencies. However, for some reason, during runtime, my app is not
> > picking up the newer commons-lang.
> >
> > Would love some help.
> >
> > Thx
> > - sky
> >
> >
>
>
>
> --
> Harsh J