mahout не запустится Что-нибудь делать с совместимой версией между hadoop и mahout?
Я новичок в Hadoop, а не сказать Mahout. Я надеюсь, что кто-то может помочь мне пройти здесь.. пытался в течение 2 дней..
У меня уже работает кластер hadoop.
Я использую hadoop-2.0.0-alpha.
Я установил mahout (ahout-distribution-0.7) и maven-2.2.1 (последняя версия maven-3.0.4 не работает)
Теперь я хотел бы просто запустить mahout, чтобы понять, что это такое.
Я узнал, что, набрав "mahout", он выведет список опций (алгоритмов), доступных в mahout, но когда я набрал mahout, он просто выдаст мне исключение Java.
$ [hadoop@localhost bin]$ mahout
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using /home/hadoop/hadoop/bin/hadoop and HADOOP_CONF_DIR=/home/hadoop/hadoop/conf
MAHOUT-JOB: /home/hadoop/mahout/examples/target/mahout-examples-0.7-job.jar
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.util.ProgramDriver.driver([Ljava/lang/String;)V
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Из того, что я гуглил онлайн, большинство ответов потребовало от меня использовать более низкую версию hadoop, то есть hadoop-0.20. Моя проблема сейчас имеет какое-то отношение к моей версии hadoop?
Спасибо.
======== Недавно отредактированный ========
Я изменил свою версию hadoop на hadoop-1.0.3, и теперь она работает, когда я набрал "mahout" (мой mahout - версия 7)
Но это снова не удается с похожей ошибкой, когда я пытался запустить пример..
$ hadoop /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.output.dir=output -Dmapred.input.dir=input/prefs.txt --usersFile input/users.txt --similarityClassname SIMILARITY_PEARSON_CORRELATION
Caused by: java.lang.ClassNotFoundException: .home.hadoop.mahout.core.target.mahout-core-0.7-job.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar. Program will exit.
Хм..
2 ответа
Да, похоже, вам нужно использовать другую версию Hadoop (или собрать последнюю версию Mahout из исходного кода), если вы хотите, чтобы это работало. Вы получили NoSuchMethodError, поэтому первое, что нужно сделать, это проверить, находится ли ProgramDriver в дистрибутиве hadoop, который вы используете.
Глядя на документы API для различных версий, вы можете увидеть, что он находится в v0.0.20.x, но был удален из более новых версий.
- http://hadoop.apache.org/common/docs/r0.20.205.0/api/index.html
- http://hadoop.apache.org/common/docs/r2.0.0-alpha/api/index.html (ваша версия)
Глядя на JIRA для Mahout, вы видите, что ошибка была отправлена для решения проблемы, подобной этой, 11 июля и была исправлена в версии 0.8.
- [MAHOUT-1044] https://issues.apache.org/jira/browse/MAHOUT-1044
Обновить:
Разве ваша команда не должна иметь jar после команды hadoop? Что-то вроде:
$ hadoop jar /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar и т. д.
@BinaryNerd прав. В Mahout есть ошибка, подробно описанная в:
- [MAHOUT-1044] https://issues.apache.org/jira/browse/MAHOUT-1044
В командной строке Mahout 0.7 выдается ошибка NoClassDef ProgramDriver, как подробно описано в первой части вашего вопроса. Это будет исправлено в 0.8, или вы можете отредактировать ваш bin / mahout, как подробно описано в отчете об ошибке, чтобы исправить расположение скоб.
Я столкнулся с той же проблемой, используя mahout под Cloudera CDH 4.1.2. Изменение скобки в моей корзине / mahout исправило это.