복붙노트

[HADOOP] Mahout 0.9 및 Hadoop 2.2.0-org.apache.hadoop.mapreduce.JobContext 인터페이스를 찾았지만 클래스가 예상되었습니다.

HADOOP

Mahout 0.9 및 Hadoop 2.2.0-org.apache.hadoop.mapreduce.JobContext 인터페이스를 찾았지만 클래스가 예상되었습니다.

내 코드는 어디에서 잘못 되었습니까? 검색했을 때 비슷한 게시물을 찾았지만 내 문제에 적응할 수 없었습니다.

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
    at org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.java:174)
    at org.apache.mahout.common.AbstractJob.prepareJob(AbstractJob.java:614)
    at org.apache.mahout.cf.taste.hadoop.preparation.PreparePreferenceMatrixJob.run(PreparePreferenceMatrixJob.java:73)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:164)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(RecommenderJob.java:322)
    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:606)
    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:72)
    at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)
    at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:152)
    at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:195)
    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:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

해결법

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

    1.이것은 알려진 문제이며 Mahout 1.0에서 사용할 수 있습니다. Hadoop 2.x를 지원하려면 트렁크에서 mahout을 다시 컴파일하십시오.

    이것은 알려진 문제이며 Mahout 1.0에서 사용할 수 있습니다. Hadoop 2.x를 지원하려면 트렁크에서 mahout을 다시 컴파일하십시오.

    이 JIRA 티켓에서 수정되었습니다 : https://issues.apache.org/jira/browse/MAHOUT-1329

    Hadoop2.2의 Mahout 오류도 비슷한 질문을 살펴보십시오.

  2. from https://stackoverflow.com/questions/22702947/mahout-0-9-and-hadoop-2-2-0-found-interface-org-apache-hadoop-mapreduce-jobcon by cc-by-sa and MIT license