hadoop-common-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harsh J <ha...@cloudera.com>
Subject Re: Invocation exception
Date Thu, 01 Mar 2012 02:27:32 GMT
Mohit,

I'm positive the real exception lies a few scrolls below that message
on the attempt page. Possibly a class not found issue.

The message you see on top is when something throws up an exception
while being configure()-ed. It is most likely a job config or
setup-time issue from your code or from the library code.

On Thu, Mar 1, 2012 at 5:19 AM, Mohit Anchlia <mohitanchlia@gmail.com> wrote:
> Thanks for the example. I did look at the logs and also at the admin page
> and all I see is the exception that I posted initially.
>
> I am not sure why adding an extra jar to the classpath in DistributedCache
> causes that exception. I tried to look at Configuration code in hadoop.util
> package but it doesn't tell much. It looks like it's throwing on this line
> "configureMethod.invoke(theObject, conf);" in below code.
>
>
> *private* *static* *void* setJobConf(Object theObject, Configuration conf) {
>
> //If JobConf and JobConfigurable are in classpath, AND
>
> //theObject is of type JobConfigurable AND
>
> //conf is of type JobConf then
>
> //invoke configure on theObject
>
> *try* {
>
> Class<?> jobConfClass =
>
> conf.getClassByName("org.apache.hadoop.mapred.JobConf");
>
> Class<?> jobConfigurableClass =
>
> conf.getClassByName("org.apache.hadoop.mapred.JobConfigurable");
>
> *if* (jobConfClass.isAssignableFrom(conf.getClass()) &&
>
> jobConfigurableClass.isAssignableFrom(theObject.getClass())) {
>
> Method configureMethod =
>
> jobConfigurableClass.getMethod("configure", jobConfClass);
>
> configureMethod.invoke(theObject, conf);
>
> }
>
> } *catch* (ClassNotFoundException e) {
>
> //JobConf/JobConfigurable not in classpath. no need to configure
>
> } *catch* (Exception e) {
>
> *throw* *new* RuntimeException("Error in configuring object", e);
>
> }
>
> }
>
> On Tue, Feb 28, 2012 at 9:25 PM, Harsh J <harsh@cloudera.com> wrote:
>
>> Mohit,
>>
>> If you visit the failed task attempt on the JT Web UI, you can see the
>> complete, informative stack trace on it. It would point the exact line
>> the trouble came up in and what the real error during the
>> configure-phase of task initialization was.
>>
>> A simple attempts page goes like the following (replace job ID and
>> task ID of course):
>>
>>
>> http://host:50030/taskdetails.jsp?jobid=job_201202041249_3964&tipid=task_201202041249_3964_m_000000
>>
>> Once there, find and open the "All" logs link to see stdout, stderr,
>> and syslog of the specific failed task attempt. You'll have more info
>> sifting through this to debug your issue.
>>
>> This is also explained in Tom's book under the title "Debugging a Job"
>> (p154, Hadoop: The Definitive Guide, 2nd ed.).
>>
>> On Wed, Feb 29, 2012 at 1:40 AM, Mohit Anchlia <mohitanchlia@gmail.com>
>> wrote:
>> > It looks like adding this line causes invocation exception. I looked in
>> > hdfs and I see that file in that path
>> >
>>  > DistributedCache.*addFileToClassPath*(*new* Path("/jars/common.jar"),
>> conf);
>> >
>> > I have similar code for another jar
>> > "DistributedCache.*addFileToClassPath*(*new* Path("/jars/analytics.jar"),
>> > conf);" but this works just fine.
>> >
>> >
>> > On Tue, Feb 28, 2012 at 11:44 AM, Mohit Anchlia <mohitanchlia@gmail.com
>> >wrote:
>> >
>> >> I commented reducer and combiner both and still I see the same
>> exception.
>> >> Could it be because I have 2 jars being added?
>> >>
>> >>  On Mon, Feb 27, 2012 at 8:23 PM, Subir S <subir.sasikumar@gmail.com
>> >wrote:
>> >>
>> >>> On Tue, Feb 28, 2012 at 4:30 AM, Mohit Anchlia <mohitanchlia@gmail.com
>> >>> >wrote:
>> >>>
>> >>> > For some reason I am getting invocation exception and I don't see
any
>> >>> more
>> >>> > details other than this exception:
>> >>> >
>> >>> > My job is configured as:
>> >>> >
>> >>> >
>> >>> > JobConf conf = *new* JobConf(FormMLProcessor.*class*);
>> >>> >
>> >>> > conf.addResource("hdfs-site.xml");
>> >>> >
>> >>> > conf.addResource("core-site.xml");
>> >>> >
>> >>> > conf.addResource("mapred-site.xml");
>> >>> >
>> >>> > conf.set("mapred.reduce.tasks", "0");
>> >>> >
>> >>> > conf.setJobName("mlprocessor");
>> >>> >
>> >>> > DistributedCache.*addFileToClassPath*(*new*
>> Path("/jars/analytics.jar"),
>> >>> > conf);
>> >>> >
>> >>> > DistributedCache.*addFileToClassPath*(*new* Path("/jars/common.jar"),
>> >>> > conf);
>> >>> >
>> >>> > conf.setOutputKeyClass(Text.*class*);
>> >>> >
>> >>> > conf.setOutputValueClass(Text.*class*);
>> >>> >
>> >>> > conf.setMapperClass(Map.*class*);
>> >>> >
>> >>> > conf.setCombinerClass(Reduce.*class*);
>> >>> >
>> >>> > conf.setReducerClass(IdentityReducer.*class*);
>> >>> >
>> >>>
>> >>> Why would you set the Reducer when the number of reducers is set to
>> zero.
>> >>> Not sure if this is the real cause.
>> >>>
>> >>>
>> >>> >
>> >>> > conf.setInputFormat(SequenceFileAsTextInputFormat.*class*);
>> >>> >
>> >>> > conf.setOutputFormat(TextOutputFormat.*class*);
>> >>> >
>> >>> > FileInputFormat.*setInputPaths*(conf, *new* Path(args[0]));
>> >>> >
>> >>> > FileOutputFormat.*setOutputPath*(conf, *new* Path(args[1]));
>> >>> >
>> >>> > JobClient.*runJob*(conf);
>> >>> >
>> >>> > ---------
>> >>> > *
>> >>> >
>> >>> > java.lang.RuntimeException*: Error in configuring object
>> >>> >
>> >>> > at org.apache.hadoop.util.ReflectionUtils.setJobConf(*
>> >>> > ReflectionUtils.java:93*)
>> >>> >
>> >>> > at
>> >>> >
>> >>>
>> org.apache.hadoop.util.ReflectionUtils.setConf(*ReflectionUtils.java:64*)
>> >>> >
>> >>> > at org.apache.hadoop.util.ReflectionUtils.newInstance(*
>> >>> > ReflectionUtils.java:117*)
>> >>> >
>> >>> > at org.apache.hadoop.mapred.MapTask.runOldMapper(*MapTask.java:387*)
>> >>> >
>> >>> > at org.apache.hadoop.mapred.MapTask.run(*MapTask.java:325*)
>> >>> >
>> >>> > at org.apache.hadoop.mapred.Child$4.run(*Child.java:270*)
>> >>> >
>> >>> > at java.security.AccessController.doPrivileged(*Native Method*)
>> >>> >
>> >>> > at javax.security.auth.Subject.doAs(*Subject.java:396*)
>> >>> >
>> >>> > at org.apache.hadoop.security.UserGroupInformation.doAs(*
>> >>> > UserGroupInformation.java:1157*)
>> >>> >
>> >>> > at org.apache.hadoop.mapred.Child.main(*Child.java:264*)
>> >>> >
>> >>> > Caused by: *java.lang.reflect.InvocationTargetException
>> >>> > *
>> >>> >
>> >>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method*)
>> >>> >
>> >>> > at sun.reflect.NativeMethodAccessorImpl.invoke(*
>> >>> > NativeMethodAccessorImpl.java:39*)
>> >>> >
>> >>> > at
>> >>> >
>> >>> >
>> >>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
>> >>> >
>> >>>
>> >>
>> >>
>>
>>
>>
>> --
>> Harsh J
>>



-- 
Harsh J

Mime
View raw message