복붙노트

[HADOOP] 문제 하둡에 RecommenderJob를 실행

HADOOP

문제 하둡에 RecommenderJob를 실행

HDFS 입력 디렉토리에 늘어선-sinple-sorted.txt 및 USERS.TXT을 첨가 한 후.

나는 다음과 같은 명령을 실행하려합니다.

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)

내가이 오류에서 나올해야 할 일? (그 다음 명령을 쓸 수 있습니다)

여러분의 도움을 부탁드립니다.

해결법

  1. ==============================

    1.귀하의 입력이 잘못되었습니다. 이 탭 또는 쉼표로 구분해야합니다.

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

  2. ==============================

    2.나는 이것이 내가이 일을하는 데 어떻게 같은 문제가 있었다.

    나는 이것이 내가이 일을하는 데 어떻게 같은 문제가 있었다.

    ":" ","에 의해 내가 먼저 교체 시도했다 :

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

    그 didn를 '작업 이후, 나는 문서를보고, 파일을 포맷 할 것 같다 : 각 라인은 각이 한 줄에 하나씩 연결 한 다음, 사용자 이름으로 시작, 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
    

    이제 예는 위의 명령 빈 / 하둡 항아리 실행 ....

  3. ==============================

    3.나는 또한이 문제를 가지고 올바른 CSV 형식을했고, 잠시 동안 당황했다.

    나는 또한이 문제를 가지고 올바른 CSV 형식을했고, 잠시 동안 당황했다.

    결국 문제는 내가 몰래되지 않은 파일의 끝 부분에 숨어 빈 줄을했다이었다.

    즉 다른 사람의 혈압이 조금 절약 할 수 있기를 바랍니다.

  4. ==============================

    4.저도 같은 문제를 가지고 있었다. 나는에서 예제를 실행하려고했다 http://girlincomputerscience.blogspot.in/2010/11/apache-mahout.html

    저도 같은 문제를 가지고 있었다. 나는에서 예제를 실행하려고했다 http://girlincomputerscience.blogspot.in/2010/11/apache-mahout.html

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

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

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

    이 파일은 TSV 또는 CSV해야한다

  5. from https://stackoverflow.com/questions/9532538/trouble-running-recommenderjob-on-hadoop by cc-by-sa and MIT license