首页 > 代码库 > hadoop运行mahout问题解决方法
hadoop运行mahout问题解决方法
问题1:
java.lang.IncompatibleClassChangeError:Found interface org.apache.hadoop.mapreduce.JobContext, but class was expectedat org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.java:174)at org.apache.mahout.common.AbstractJob.prepareJob(AbstractJob.java:614)at org.apache.mahout.cf.taste.hadoop.preparation.PreparePreferenceMatrixJob.run(PreparePreferenceMatrixJob.java:73)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
hadoop还不能支持hadoop1
问题2:
[root@crxy170 ~]# mahout hadoop jar jar.jar cmd.client.app.ClientAPPMAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.Running on hadoop, using /usr/lib/hadoop/bin/hadoop and HADOOP_CONF_DIR=/etc/hadoop/confSLF4J:Class path contains multiple SLF4J bindings.SLF4J:Found binding in[jar:file:/usr/lib/zookeeper/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Found binding in[jar:file:/usr/local/hbase-0.98.8-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Found binding in[jar:file:/usr/local/mahout0.9/mahout-core-0.9-job.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J:Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]14/12/0600:10:32 INFO common.AbstractJob:Command line arguments:{--booleanData=http://www.mamicode.com/[true],--endPhase=[2147483647],--input=[hdfs://192.168.1.170:8020/user/root/userCF],--maxPrefsInItemSimilarity=[500],--maxPrefsPerUser=[10],--maxSimilaritiesPerItem=[100],--minPrefsPerUser=[1],--numRecommendations=[10],--output=[hdfs://192.168.1.170:8020/user/root/userCF/result/],--similarityClassname=[org.apache.mahout.math.hadoop.similarity.cooccurrence.measures.EuclideanDistanceSimilarity],--startPhase=[0],--tempDir=[hdfs://192.168.1.170:8020/tmp/1417795832292]}>
http://qnalist.com/questions/4884816/how-to-execute-recommenderjob-without-preference-value
这里有人是这样解决的:数据文件中字段的分割原来是空格,改为逗号。我用的数据文件本来就是逗号。还是报这个错误。
解决方法:
Apache hadoop
设置方法参考: hadoop2.2+mahout0.9实战 - 推酷 http://www.tuicool.com/articles/ryU7Ff
cdh
版本:5.1.3 经验感觉,cdh和Apache的hadoop在使用的时候,同样的技术在使用的时候经常不同。mahout也该用cloudera自己的。
在centos中安装mahout:sudo yum install mahout
是cloudera官网提供的
vi /etc/hadoop/conf/hadoop-env.sh
在HADOOP_CLASSPATH后添加:/usr/lib/mahout/*:/usr/lib/mahout/lib/*
在HADOOP_CLASSPATH后添加:/usr/lib/mahout/*:/usr/lib/mahout/lib/*
现在可以运行了:
mahout hadoop jar jar.jar cmd.client.app.ClientAPP
mahout hadoop jar jar.jar cmd.client.app.ClientAPP
或者hadoop jar jar.jar cmd.client.app.ClientAPP都能运行
hadoop运行mahout问题解决方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。