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