运行Mahout基于reenditem的算法时出错



我试图在Mahout中使用基于推荐条目的算法,但遇到了一个错误。你的指导会很有帮助的。我下载了Cloudera CDH 5.4 VM,并在上面运行这个。我在"input"目录下创建了以下示例文件,并尝试运行内置算法。下面是我以.txt格式使用的文件的示例数据:

1, 3, 32、4、23、4、15、2、45、4、13、3、12、2、31、5、56、2、16、4、4

但是我得到了下面的java。arrayindexoutofbounds错误。

下面是该算法使用的详细链接http://mahout.apache.org/users/recommender/intro-itembased-hadoop.html

错误如下:

15/10/12 06:57:54 INFO mapreduce.Job: The url to track the job: http://quickstart.cloudera:8088/proxy/application_1444042848266_0006/
15/10/12 06:57:54 INFO mapreduce.Job: Running job: job_1444042848266_0006
15/10/12 06:58:56 INFO mapreduce.Job: Job job_1444042848266_0006 running in uber mode : false
15/10/12 06:58:56 INFO mapreduce.Job:  map 0% reduce 0%
15/10/12 07:06:06 INFO mapreduce.Job:  map 50% reduce 0%
15/10/12 07:06:14 INFO mapreduce.Job:  map 100% reduce 0%
15/10/12 07:06:20 INFO mapreduce.Job:  map 0% reduce 0%
15/10/12 07:06:32 INFO mapreduce.Job: Task Id : attempt_1444042848266_0006_m_000000_0, Status : FAILED
Error: java.lang.ArrayIndexOutOfBoundsException: 1
                at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:50)
                at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:31)
                at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
                at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
                at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
                at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:415)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
                at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

这通常意味着一些格式错误的输入,如null或缺失值。仔细检查你的输入。你能把所有的输入放到一个要点中或者在某个地方分享吗?

最新更新