Hi Sam, The exception java.lang.IncompatibleClassChangeError: Found class but interface was expected is very common when one is using code compiled against Hadoop 1 on Hadoop 2 or vice versa. You seem to be using correctly the -Dhadoopversion=100 to build Sqoop against Hadoop 1, however ant target tar won't recompile the sources in case that they are already compiled (even when they are compiled against wrong hadoop version). Thus I would suggest to run following command instead:
ant clean tar -Dhadoopversion=100 Jarcec On Fri, Jul 12, 2013 at 03:31:59PM +0800, sam liu wrote: > Hi Experts, > > I built sqoop project to generate sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz > using command:'ant -Dhadoopversion=100 tar'. Before that, I clean up my ivy > repository. > > However, using the generated sqoop-1.4.4 project, I still encountered > IncompatibleClassChangeError as below. My command likes 'sqoop import > --connect jdbc:db2://hostname:50000/SAMPLE --table DB2ADMIN.DB2TEST_TBL > --username > user --password passwrd --target-dir /tmp/DB2TEST_TBL --split-by id'. > > Any commnts? Thanks! > > 13/07/11 23:17:31 INFO mapred.JobClient: Cleaning up the staging area > hdfs:// > 127.0.0.1:9010/home/temp/hadoop/mapred/staging/root/.staging/job_201307112228_0013 > Exception in thread "main" java.lang.IncompatibleClassChangeError: Found > class org.apache.hadoop.mapreduce.JobContext, but interface was expected > at > org.apache.sqoop.config.ConfigurationHelper.getJobNumMaps(ConfigurationHelper.java:53) > at > com.cloudera.sqoop.config.ConfigurationHelper.getJobNumMaps(ConfigurationHelper.java:36) > at > org.apache.sqoop.mapreduce.db.DataDrivenDBInputFormat.getSplits(DataDrivenDBInputFormat.java:121) > at > org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1024) > at > org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1041) > at org.apache.hadoop.mapred.JobClient.access$700(JobClient.java:179) > at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:959) > at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:912) > 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:1136) > at > org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:912) > at org.apache.hadoop.mapreduce.Job.submit(Job.java:500) > at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530) > at > org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:173) > at > org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:151) > at > org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:221) > at > org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:545) > at > org.apache.sqoop.manager.Db2Manager.importTable(Db2Manager.java:64) > at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:403) > at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476) > at org.apache.sqoop.Sqoop.run(Sqoop.java:145) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) > at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) > at org.apache.sqoop.Sqoop.main(Sqoop.java:238) > > > > > -- > > Sam Liu
signature.asc
Description: Digital signature
