Hello all,
I have installed Clouder cdh4 and added the mahout rpm afterwards.
When starting mahout I see the following output.
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using /usr/lib/hadoop-0.20-mapreduce/bin/hadoop and
HADOOP_CONF_DIR=/etc/hadoop/conf
MAHOUT-JOB: /usr/lib/mahout/mahout-examples-0.6-cdh4.0.1-job.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/hadoop/util/PlatformName
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.util.PlatformName. Program
will exit.
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/hadoop/util/RunJar
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.RunJar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.util.RunJar. Program will
exit.
Apparently the main issue is that mahout cannot find the classes PlatformName
and RunJar
I looked around and found that these classes are in
/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar
Since /usr/bin/mahout is a shell script I added the jar to the HADOOP_CLASSPATH
variable in it.
export
HADOOP_CLASSPATH="/usr/lib/mahout/mahout-examples-*-job.jar":/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar:$HADOOP_CLASSPATH
Is there a ‘official’ way to get the configuration right?
When starting it without any parameters it now shows:
[nl19856@nlvora150 ~]$ mahout
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using /usr/lib/hadoop-0.20-mapreduce/bin/hadoop and
HADOOP_CONF_DIR=/etc/hadoop/conf
MAHOUT-JOB: /usr/lib/mahout/mahout-examples-0.6-cdh4.0.1-job.jar
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
An example program must be given as the first argument.
Valid program names are:
arff.vector: : Generate Vectors from an ARFF file or directory
baumwelch: : Baum-Welch algorithm for unsupervised HMM training
canopy: : Canopy clustering
cat: : Print a file or resource as the logistic regression models would see it
.. etc..
vectordump: : Dump vectors from a sequence file to text
viterbi: : Viterbi decoding of hidden states from given output states sequence
wikipediaDataSetCreator: : Splits data set of wikipedia wrt feature like
country
wikipediaXMLSplitter: : Reads wikipedia data and creates ch
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:119)
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:208)
Do I need to change the configuration for this too?
Regards Hans-Peter
Dit bericht is vertrouwelijk en kan geheime informatie bevatten enkel bestemd
voor de geadresseerde. Indien dit bericht niet voor u is bestemd, verzoeken wij
u dit onmiddellijk aan ons te melden en het bericht te vernietigen. Aangezien
de integriteit van het bericht niet veilig gesteld is middels verzending via
internet, kan Atos Nederland B.V. niet aansprakelijk worden gehouden voor de
inhoud daarvan. Hoewel wij ons inspannen een virusvrij netwerk te hanteren,
geven wij geen enkele garantie dat dit bericht virusvrij is, noch aanvaarden
wij enige aansprakelijkheid voor de mogelijke aanwezigheid van een virus in dit
bericht. Op al onze rechtsverhoudingen, aanbiedingen en overeenkomsten
waaronder Atos Nederland B.V. goederen en/of diensten levert zijn met
uitsluiting van alle andere voorwaarden de Leveringsvoorwaarden van Atos
Nederland B.V. van toepassing. Deze worden u op aanvraag direct kosteloos
toegezonden.
This e-mail and the documents attached are confidential and intended solely for
the addressee; it may also be privileged. If you receive this e-mail in error,
please notify the sender immediately and destroy it. As its integrity cannot be
secured on the Internet, the Atos Nederland B.V. group liability cannot be
triggered for the message content. Although the sender endeavours to maintain a
computer virus-free network, the sender does not warrant that this transmission
is virus-free and will not be liable for any damages resulting from any virus
transmitted. On all offers and agreements under which Atos Nederland B.V.
supplies goods and/or services of whatever nature, the Terms of Delivery from
Atos Nederland B.V. exclusively apply. The Terms of Delivery shall be promptly
submitted to you on your request.
Atos Nederland B.V. / Utrecht
KvK Utrecht 30132762