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]

Reply via email to