You either need to add the your Rserve.jar to -libjars, or put Rserve.jar in a cluster-accessible NFS mount (and add it to CLASSPATH/HADOOP_CLASSPATH).
Zheng -----Original Message----- From: Saptarshi Guha [mailto:[email protected]] Sent: Thursday, December 18, 2008 3:38 PM To: [email protected] Subject: Classes Not Found even when classpath is mentioned (Starting mapreduce from another app) Hello, I intend to start a mapreduce job from another java app, using ToolRunner.run method. This works fine on a local job. However when distributed i get java.lang.NoClassDefFoundError: org/rosuda/REngine/Rserve/RserveException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.getDeclaredConstructor(Class.java:1985) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:74) at org.apache.hadoop.mapred.JobConf.getInputFormat(JobConf.java:402) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:219) at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2207) Now, i have a CLASSPATH entry in my .bashrc which contains the location of Rserve.jar (which contains the above classes), yet I still get the above error. Do I have to somehow emulate RunJar.main or is there a simpler way out? Thank you Saptarshi -- Saptarshi Guha - [email protected]
