Hi,
I am using Hadoop 2.4.0 with Hive 0.13 + included package of HCatalog . Wrote a 
simple map-reduce job from the example and running the code below .. getting 
"Exception in thread "main" java.lang.IncompatibleClassChangeError: Found 
interface org.apache.hadoop.mapreduce.JobContext, but class was expected"  .. 
Not sure of the error I am making ..
Not sure if there a compatibility issue .. please help..

boolean success = true;
              try {
              Configuration conf = getConf();
              args = new GenericOptionsParser(conf, args).getRemainingArgs();
              //Hive Table Details
              String dbName = args[0];
              String inputTableName= args[1];
              String outputTableName= args[2];

              //Job Input
              Job job = new Job(conf,"Scenarios");
          //Initialize Map/Reducer Input/Output
              HCatInputFormat.setInput(job,dbName,inputTableName);
              //HCatInputFormat.ssetInput(job,InputJobInfo.create(dbName, 
inputTableName, null));
              job.setInputFormatClass(HCatInputFormat.class);
              job.setJarByClass(MainRunner.class);
       job.setMapperClass(ScenarioMapper.class);
        job.setReducerClass(ScenarioReducer.class);
       job.setMapOutputKeyClass(IntWritable.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setOutputKeyClass(WritableComparable.class);
        job.setOutputValueClass(DefaultHCatRecord.class);

        HCatOutputFormat.setOutput(job, OutputJobInfo.create(dbName, 
outputTableName, null));
        HCatSchema outSchema = HCatOutputFormat.getTableSchema(conf);
        System.err.println("INFO: output schema explicitly set for writing:"+ 
outSchema);
       HCatOutputFormat.setSchema(job, outSchema);
        job.setOutputFormatClass(HCatOutputFormat.class);


14/06/02 18:52:57 INFO client.RMProxy: Connecting to ResourceManager at 
localhost/00.04.07.174:8040
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found 
interface org.apache.hadoop.mapreduce.JobContext, but class was expected
        at 
org.apache.hive.hcatalog.mapreduce.HCatBaseOutputFormat.getJobInfo(HCatBaseOutputFormat.java:104)
        at 
org.apache.hive.hcatalog.mapreduce.HCatBaseOutputFormat.getOutputFormat(HCatBaseOutputFormat.java:84)
        at 
org.apache.hive.hcatalog.mapreduce.HCatBaseOutputFormat.checkOutputSpecs(HCatBaseOutputFormat.java:73)
        at 
org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:458)
        at 
org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:343)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
        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:1548)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
        at 
com.citi.aqua.snu.hdp.clar.mra.service.MainRunner.run(MainRunner.java:79)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at 
com.citi.aqua.snu.hdp.clar.mra.service.MainRunner.main(MainRunner.java:89)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

Regards,
Malli

Reply via email to