Проблема при запуске RecommenderJob на hadoop - PullRequest
1 голос
/ 02 марта 2012

После добавления lined-sinple-sorted.txt и users.txt во входную директорию hdfs.

Я пытаюсь выполнить следующую команду.

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar /opt/mahout/core/target/mahout-core-0.7-SNAPSHOT-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=input/input.txt -Dmapred.output.dir=output --similarityClassname SIMILARITY_PEARSON_CORRELATION --usersFile input/users.txt --booleanData

тогда я получил следующую ошибку:

12/03/02 06:17:06 INFO common.AbstractJob: Command line arguments: {--booleanData=[false], --endPhase=[2147483647], --maxPrefsPerUser=[10], --maxPrefsPerUserInItemSimilarity=[1000], --maxSimilaritiesPerItem=[100], --minPrefsPerUser=[1], --numRecommendations=[10], --similarityClassname=[SIMILARITY_PEARSON_CORRELATION], --startPhase=[0], --tempDir=[temp], --usersFile=[input/users.txt]}
12/03/02 06:17:06 INFO common.AbstractJob: Command line arguments: {--booleanData=[false], --endPhase=[2147483647], --input=[input/input.txt], --maxPrefsPerUser=[1000], --minPrefsPerUser=[1], --output=[temp/preparePreferenceMatrix], --ratingShift=[0.0], --startPhase=[0], --tempDir=[temp]}
12/03/02 06:17:07 INFO input.FileInputFormat: Total input paths to process : 1
12/03/02 06:17:08 INFO mapred.JobClient: Running job: job_201203020113_0018
12/03/02 06:17:09 INFO mapred.JobClient:  map 0% reduce 0%
12/03/02 06:17:23 INFO mapred.JobClient: Task Id : attempt_201203020113_0018_m_000000_0, Status : FAILED
java.lang.ArrayIndexOutOfBoundsException: 1

    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:47)
    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:31)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

12/03/02 06:17:29 INFO mapred.JobClient: Task Id : attempt_201203020113_0018_m_000000_1, Status : FAILED
java.lang.ArrayIndexOutOfBoundsException: 1

    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:47)
    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:31)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

12/03/02 06:17:35 INFO mapred.JobClient: Task Id : attempt_201203020113_0018_m_000000_2, Status : FAILED
java.lang.ArrayIndexOutOfBoundsException: 1

    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:47)
    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:31)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

12/03/02 06:17:44 INFO mapred.JobClient: Job complete: job_201203020113_0018
12/03/02 06:17:44 INFO mapred.JobClient: Counters: 3
12/03/02 06:17:44 INFO mapred.JobClient:   Job Counters
12/03/02 06:17:44 INFO mapred.JobClient:     Launched map tasks=4
12/03/02 06:17:44 INFO mapred.JobClient:     Data-local map tasks=4
12/03/02 06:17:44 INFO mapred.JobClient:     Failed map tasks=1
Exception in thread "main" java.io.IOException: Cannot open filename /user/hduser/temp/preparePreferenceMatrix/numUsers.bin
    at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.openInfo(DFSClient.java:1497)
    at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.<init>(DFSClient.java:1488)
    at org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:376)
    at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:178)
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:356)
    at org.apache.mahout.common.HadoopUtil.readInt(HadoopUtil.java:267)
    at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:162)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(RecommenderJob.java:293)
    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:156)

что мне нужно сделать, чтобы выйти из этой ошибки? (Возможно ли тогда написать команду)

Ваша помощь будет оценена по достоинству.

Ответы [ 4 ]

4 голосов
/ 03 марта 2012

Ваш ввод искажен.Он должен быть разделен табуляцией или запятой.

2 голосов
/ 11 сентября 2012

У меня была такая же проблема, вот как я заставил ее работать.

Сначала я попытался заменить ":" на ",":

sed -i 's/: /,/' links-simple-sorted.txt

, поскольку это не сработалоЯ просмотрел документацию, и кажется, что файл должен быть переформатирован: каждая строка должна быть заменена на 1 + x строк, каждая из которых начинается с имени пользователя, за которым следует одна ссылка на строку .:

awk -F, -v OFS="," '{ user = $1; split($2, links, " "); for (link in links) { print user,links[link]; } }' links-simple-sorted.txt > input.txt

затем я загрузил новый файл:

bin/hadoop fs -put input.txt input/input.txt

Теперь пример выполняется с приведенной выше командой bin/hadoop jar ....

0 голосов
/ 25 февраля 2015

У меня была такая же проблема.Я пытался запустить пример из http://girlincomputerscience.blogspot.in/2010/11/apache-mahout.html

Это была проблема с форматом входного файла.Некоторые невидимые символы копируются.

Откройте текстовый редактор, скопируйте входной файл, удалите все невидимые символы и сохраните его снова.

bin/hadoop fs -put input.txt input/input.txt

Файл должен быть tsv или csv

0 голосов
/ 17 июля 2013

У меня также была эта проблема, у меня было правильное форматирование CSV, и я какое-то время был озадачен.

В конце концов, проблема заключалась в том, что в конце файла была пустая строка, которой я не былзаметив.

Надеюсь, что немного спасет чужое кровяное давление.

...