-RE: pragmattically invoking map reduce job from a .war deployed in tomcat
Thanks for the quick response, Billie! You are correct it should be -libjars. That was just a typo in my email. You mentioned that I'm supposed to have my job jar and other dependencies in the lib folder of the webapp. I'll give that a shot!
From: Billie Rinaldi [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 08, 2013 12:46 PM
To: [EMAIL PROTECTED]
Subject: Re: pragmattically invoking map reduce job from a .war deployed in tomcat
On Fri, Feb 8, 2013 at 12:25 PM, Cornish, Duane C. <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
I have an accumulo instance running on a small 4 node cluster. The namenode is running tomcat. I am using a restful service to allow clients to access accumulo and kick off map reduce jobs.
Previously, I had been creating runnable jars of my map reduce jobs. The restful service would make a command line call to run the jar. i.e. "java -jar mapreducejob.java -arg1 -arg2 etc."
I am now trying to switch these jobs to be called programmatically. I am aware that I need to pass a comma separated list of jars into the ToolRunner.run call. i.e.
arg = "-libjar";
This should be -libjars. However, that is probably not the issue because the job classes themselves are not passed in via libjars. Searching around, I saw some indication that you are supposed to have your job jar and other dependencies in the lib folder for your webapp. Are you doing that?
arg = "accumulo-core-1.4.1,jar2" etc.
arg = "myArg1";
arg = "myArg2";
When I run my job, I get an error in in my map tasks in the jobtracker Admin webpage:
java.lang.RuntimeException: java.lang.ClassNotFoundException: <package.Name>.<functionNameOfMyMapper>
I don't know why the system can't find the mapper function. It is in the same package as my Job file and they should all be contained in the .war file that is deployed in tomcat.
Has anyone had success calling a map reduce job programmatically from within tomcat?