2

我已成功将输入文件“input.txt”和“users.txt”添加到 HDFS。我已经成功地分别测试了 Hadoop 和 Mahout 作业。但是,当我使用以下命令行运行 RecommenderJob 时:

bin/hadoop jar /Applications/mahout-distribution-0.9/mahout-core-0.9-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=/user/valtera45/input /input.txt -Dmapred.output.dir=/user/valtera45/output --usersFile /user/valtera45/input2/users.txt --similarityClassname SIMILARITY_COOCCURRENCE

这是我得到的输出:

线程“主”java.io.IOException 中的异常:无法在 org.apache.hadoop.hdfs.DFSClient$DFSInputStream.openInfo(DFSClient.java:1444) 处打开文件名 /user/valtera45/temp/preparePreferenceMatrix/numUsers.bin 在 org .apache.hadoop.hdfs.DFSClient$DFSInputStream.(DFSClient.java:1435) 在 org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:347) 在 org.apache.hadoop.hdfs.DistributedFileSystem.open( DistributedFileSystem.java:178) 在 org.apache.hadoop.fs.FileSystem.open(FileSystem.java:351) 在 org.apache.mahout.common.HadoopUtil.readInt(HadoopUtil.java:339) 在 org.apache.mahout .cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:172) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 在 org.apache.mahout.cf.taste.hadoop .item.RecommenderJob.main(RecommenderJob.java:322) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect .Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:156)

每当我运行独立的 Mahout 作业时,都会在 Mahout 目录中创建一个临时文件夹。RecommenderJob 似乎无法通过这一步。有任何想法吗?提前致谢。我知道我使用的输入文件格式正确,因为它们已经成功地为其他人工作。

4

1 回答 1

0
hadoop jar mahout-core-0.8-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=large_data.csv -Dmapred.output.dir=output/output1.csv -s SIMILARITY_LOGLIKELIHOOD --booleanData --numRecommendations 5

我正在使用它,我的程序在带有 mahout 和 hadoop 的 ec2 实例上成功运行,但我无法获得相关结果。如果有人对此有所了解,请对此进行回复。

于 2015-08-17T04:58:44.300 回答