I compiled Hive trunk source code using: ant clean package eclipse-files
and run a junit test on command line just fine: ant test -Dtestcase=TestCliDriver -Dqfile=auto_join25.q -Dmodule=ql -Dtest.silent=false However, when imported into eclipse and run the same test, it throws following error: 13/09/26 13:44:41 INFO mr.ExecDriver: Executing: /home/xiu/git/hiveTrunk/testutils/hadoop jar /home/xiu/git/hiveTrunk/build/ql/hive-exec-0.13.0-SNAPSHOT.jar org.apache.hadoop.hive.ql.exec.mr.ExecDriver -plan file:/home/xiu/git/hiveTrunk/build/ql/localscratchdir/hive_2013-09-26_13-44-40_635_1327282357933361987-1/-local-10004/plan.xml -jobconffile file:/home/xiu/git/hiveTrunk/build/ql/localscratchdir/hive_2013-09-26_13-44-40_635_1327282357933361987-1/-local-10003/jobconf.xml which: no /home/xiu/git/hiveTrunk/testutils/hadoop in ((null)) dirname: missing operand Try `dirname --help' for more information. Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.hadoop.hive.metastore.api.AlreadyExistsException at java.lang.J9VMInternals.verifyImpl(Native Method) at java.lang.J9VMInternals.verify(J9VMInternals.java:72) at java.lang.J9VMInternals.initialize(J9VMInternals.java:134) at org.apache.hadoop.hive.ql.plan.PartitionDesc.getDeserializer(PartitionDesc.java:112) at org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getSplits(CombineHiveInputFormat.java:310) at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:1051) at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1043) 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(AccessController.java:362) at javax.security.auth.Subject.doAs(Subject.java:573) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:912) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:886) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:425) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.main(ExecDriver.java:725) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.apache.hadoop.util.RunJar.main(RunJar.java:156) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.metastore.api.AlreadyExistsException at java.net.URLClassLoader.findClass(URLClassLoader.java:434) at java.lang.ClassLoader.loadClass(ClassLoader.java:672) at java.lang.ClassLoader.loadClass(ClassLoader.java:638) ... 22 more 13/09/26 13:44:43 ERROR exec.Task: Execution failed with exit status: 1 13/09/26 13:44:43 ERROR exec.Task: Obtaining error information 13/09/26 13:44:43 ERROR exec.Task: Task failed! Task ID: Stage-1 Logs: 13/09/26 13:44:43 ERROR mr.ExecDriver: Execution failed with exit status: 1 It had been fine until I updated to the latest Trunk code two days ago. I looked up, the AlreadyExistsException.java is there before build, AlreadyExistsException.class is there after build and \*metastore*.jar is there too. Could anyone please tell me where else should I look into? Thank you!