You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Arun A K <ar...@gmail.com> on 2010/11/29 07:33:36 UTC

Mahout-Twenty Newsgroups Classification Example: Unable to set Hadoop Job Queue

Greetings

I am a newbie to Mahout and installed it using the source from the trunk as
recommended in
https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout

The installation worked good and I jumped onto the Twenty Newsgroups example
listed at
https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups

I was able to train the data set, load it to HDFS and went on to execute the
following command to train the classifier:

$MAHOUT_HOME/bin/mahout trainclassifier -i 20news-input -o newsmodel -type
bayes -ng 3 -source hdfs

It failed with the error message:
*Exception in thread "main" org.apache.hadoop.ipc.RemoteException:
java.io.IOException: Queue "default" does not exist*
*        at
org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3680)*
*        at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)*
*        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
*
*        at java.lang.reflect.Method.invoke(Method.java:597)*
*        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)*
*        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1301)*
*        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1297)*
*        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:1062)
*
*        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1295)*
*
*
*        at org.apache.hadoop.ipc.Client.call(Client.java:951)*
*        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:223)*
*        at org.apache.hadoop.mapred.$Proxy6.submitJob(Unknown Source)*
*        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:818)*
*        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:752)*
*        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:1062)
*
*        at
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:752)*
*        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:726)
*
*        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1156)*
*        at
org.apache.mahout.classifier.bayes.mapreduce.common.BayesFeatureDriver.runJob(BayesFeatureDriver.java:63)
*
*        at
org.apache.mahout.classifier.bayes.mapreduce.bayes.BayesDriver.runJob(BayesDriver.java:44)
*
*        at
org.apache.mahout.classifier.bayes.TrainClassifier.trainNaiveBayes(TrainClassifier.java:54)
*
*        at
org.apache.mahout.classifier.bayes.TrainClassifier.main(TrainClassifier.java:162)
*
*        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)*
*        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
*
*        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
*
*        at java.lang.reflect.Method.invoke(Method.java:597)*
*        at
org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
*
*        at
org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)*
*        at
org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:182)*
*        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)*
*        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
*
*        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
*
*        at java.lang.reflect.Method.invoke(Method.java:597)*
*        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)*

On our Hadoop clusters we submit jobs to queues. Is there a way to set
mapred.job.queue.name to a job queue of my choice? I tried to do that in
core/src/main/java/org/apache/mahout/common/HadoopUtil.java using conf.set("
mapred.job.queue.name","myQueue");, did a re-compile but it still fails.

It would really help if some one can point me to the file where I can make
the change to supply the queue name.

Thanks much.

Regards
Arun A K

Re: Mahout-Twenty Newsgroups Classification Example: Unable to set Hadoop Job Queue

Posted by Arun A K <ar...@gmail.com>.
Hello

Has anyone tried the Twenty Newsgroups example listed at
https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups ?

<https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups>I am
not able to run it on our cluster to which we ought to submit jobs via
queues. I tried a recompile by modifying
core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureDriver.java.
I added conf.set("mapred.job.queue.name","myQueue"); but it still fails. Is
there any other way to pass Hadoop parameters like queue name?

Thanks much for your patience.

Regards
Arun

On Sun, Nov 28, 2010 at 10:33 PM, Arun A K <ar...@gmail.com> wrote:

> Greetings
>
> I am a newbie to Mahout and installed it using the source from the trunk as
> recommended in
> https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout
>
> The installation worked good and I jumped onto the Twenty Newsgroups
> example listed at
> https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups
>
> I was able to train the data set, load it to HDFS and went on to execute
> the following command to train the classifier:
>
> $MAHOUT_HOME/bin/mahout trainclassifier -i 20news-input -o newsmodel -type
> bayes -ng 3 -source hdfs
>
> It failed with the error message:
> *Exception in thread "main" org.apache.hadoop.ipc.RemoteException:
> java.io.IOException: Queue "default" does not exist*
> *        at
> org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3680)*
> *        at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)*
> *        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> *
> *        at java.lang.reflect.Method.invoke(Method.java:597)*
> *        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)*
> *        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1301)*
> *        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1297)*
> *        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:1062)
> *
> *        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1295)*
> *
> *
> *        at org.apache.hadoop.ipc.Client.call(Client.java:951)*
> *        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:223)*
> *        at org.apache.hadoop.mapred.$Proxy6.submitJob(Unknown Source)*
> *        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:818)*
> *        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:752)*
> *        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:1062)
> *
> *        at
> org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:752)*
> *        at
> org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:726)*
> *        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1156)
> *
> *        at
> org.apache.mahout.classifier.bayes.mapreduce.common.BayesFeatureDriver.runJob(BayesFeatureDriver.java:63)
> *
> *        at
> org.apache.mahout.classifier.bayes.mapreduce.bayes.BayesDriver.runJob(BayesDriver.java:44)
> *
> *        at
> org.apache.mahout.classifier.bayes.TrainClassifier.trainNaiveBayes(TrainClassifier.java:54)
> *
> *        at
> org.apache.mahout.classifier.bayes.TrainClassifier.main(TrainClassifier.java:162)
> *
> *        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)*
> *        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> *
> *        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> *
> *        at java.lang.reflect.Method.invoke(Method.java:597)*
> *        at
> org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
> *
> *        at
> org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)*
> *        at
> org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:182)*
> *        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)*
> *        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> *
> *        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> *
> *        at java.lang.reflect.Method.invoke(Method.java:597)*
> *        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)*
>
> On our Hadoop clusters we submit jobs to queues. Is there a way to set
> mapred.job.queue.name to a job queue of my choice? I tried to do that in
> core/src/main/java/org/apache/mahout/common/HadoopUtil.java using conf.set("
> mapred.job.queue.name","myQueue");, did a re-compile but it still fails.
>
> It would really help if some one can point me to the file where I can make
> the change to supply the queue name.
>
> Thanks much.
>
> Regards
> Arun A K
>