2012-03-02 3 views
1

hined의 입력 디렉토리에 lined-sinple-sorted.txt 및 users.txt를 추가 한 후hadoop의 Recommenderjob을 실행하는 중 문제가 발생했습니다

다음 명령을 실행하려고합니다. ? 내가이 오류에서 나올 무엇을해야

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) 

(이 명령 한 후 쓰기 가능)

가 당신의 도움이 이해할 수있을 것이다 :

[email protected]:/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 

후 나는 다음과 같은 오류가 발생했습니다 .

답변

4

입력 내용이 잘못되었습니다. 탭 또는 쉼표로 구분해야합니다.

+0

고맙습니다 sean.Are 당신이해야합니다. 또는 내가 명령에서 입력 한 whtever에서 변경해야하는지. ?? –

+0

입력 데이터 파일. –

+0

입력 파일은 user_id : (space) item_id와 유사합니다.이 파일을 csv.it에서 변환하려고 시도하면 ==> user_id :, item_id1, item_id2처럼 생성됩니다. 해결책을 얻을 수 없습니다. ==> user_id : item_id1, item_id2. 같은 방식으로 => user_id, item_id1, user_id, item_id2, user_id, item_id3, user_id, item_id4와 같은 CSV로 RecommenderJob을 실행할 수 있습니다. –

2

나는 똑같은 문제가 있었는데, 이것이 어떻게 작동하는지입니다. ":" ","기준 :

내가 먼저 교체 시도

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

그 didn를 '작업 이후, 나는 문서를보고, 파일을 포맷 할 것 같다 : 각 행이되어야한다

bin/hadoop fs -put input.txt input/input.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 jar ...으로 실행 중입니다.

+1

무수한 절망적 인 시간에서 저를 구해 냈습니다 – daydreamer

+0

출력 부품 파일은 비어 있습니다. 그 이유는 무엇입니까? 내'users.txt'는'3'이있는 한 줄을 가지고 있습니다. 알려주세요 – daydreamer

+0

죄송합니다, 여기에서 말할 수 없습니다. 너의 하프 로그를 확인하고 카운터에 이상한 점이 있는지 확인하십시오. – exic

0

또한이 문제가 발생하여 올바른 CSV 형식을 사용하고 잠시 당황했습니다.

결국 문제는 필자가 눈치 채지 못했던 파일 끝 부분에 빈 줄이 숨겨져 있다는 것이 었습니다.

다른 사람의 혈압을 약간 줄이는 희망.

0

나는 동일한 문제가있었습니다. 예제를 실행하려고했습니다. http://girlincomputerscience.blogspot.in/2010/11/apache-mahout.html

입력 파일 형식 문제였습니다. 일부 보이지 않는 문자가 복사됩니다.

텍스트 편집기를 열고 입력 파일을 복사하고 모든 보이지 않는 문자를 제거하고 다시 저장하십시오.

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

파일은 입력 파일 (연결된 단순 sorted.txt)에 대해 이야기 TSV 또는 CSV