2015-10-13 22 views
0

我試圖在Mahout中使用recomendItembased算法,但遇到了錯誤。你的指導將有很大幫助。 我下載了Cloudera CDH 5.4 VM,並正在運行它。 我在目錄'input'中創建了以下示例文件,並嘗試運行內置算法。 下面是文件I .txt格式中使用的樣品數據:運行Mahout recomendItembased算法時出錯

1,3,3- 2,4,2 3,4,1 5,2,4 5,4,1 3 ,3,1 2,2,3 1,5,5- 6,2,1 6,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) 

回答

0

這通常意味着像空或丟失的值的一些畸形輸入。仔細檢查你的輸入。你能把整個輸入的內容放在一個地方,還是分享一下?