Argh!  Sorry, accidentally sent email.

I am encountering a ClassCastException in my custom Tool class:

14/01/08 15:58:15 ERROR step.AbstractStep: Encountered an error executing
the step
java.lang.ClassCastException: org.apache.giraph.conf.GiraphConfiguration
cannot be cast to org.apache.hadoop.mapred.JobConf
at org.apache.hadoop.mapreduce.Job$1.run(Job.java:513)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
at org.apache.hadoop.mapreduce.Job.connect(Job.java:511)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:499)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at
com.johnyost.analytics.TwitterSpringRunner.run(TwitterSpringRunner.java:72)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)

Looking at the Hadoop Job source code, the ClassCastException is being
thrown here:

private void connect() throws IOException, InterruptedException {
511    ugi.doAs(new PrivilegedExceptionAction<Object>() {
512      public Object run() throws IOException {
513        jobClient = new JobClient((JobConf) getConfiguration());
514        return null;
515      }
516    });

My job runs fine with GiraphRunner, and I see that class implements Tool
and does not extend Configured like I did.  So... I changed my class
definition to implements Tool instead of extends Configured and implements
Tool, implementing getConf and setConf.  This did not help.

Any ideas?  This Exception is a real head-scratcher for me

Thanks

--John

Reply via email to