0.20.2 версия API Hoopoop с Java 5 - PullRequest
6 голосов
/ 07 июня 2010

Я запустил проект maven, пытаясь реализовать алгоритм MapReduce в Java 1.5.0_14.Я выбрал версию 0.20.2 API Hadoop.Таким образом, в pom.xml я использую следующую зависимость:

<зависимость>

< groupId>org.apache.hadoop< /groupId>      
< artifactId>hadoop-core< /artifactId>      
< version>0.20.2< /version>

Но когда я использую импортк классам org.apache.hadoop я получаю следующую ошибку:

неверный файл класса: $ {HOME_DIR} \ repository \ org \ apache \ hadoop \ hadoop-core \ 0.20.2 \ hadoopФайл класса -core-0.20.2.jar (org / apache / hadoop / fs / Path.class) имеет неправильную версию 50.0, должен быть 49.0 .

Кто-нибудь знает, как я могу решить эту проблему.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 июня 2010

Maven по умолчанию компилируется в JDK 1.4 совместимость.Вам нужно это изменить.

Вам нужно добавить это в ваш pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

[Редактировать: спасибо Шон за то, что Hadoop требует JDK 6]

1 голос
/ 14 сентября 2010

Я столкнулся с этой же проблемой. Оказалось, что сам sbt работал на Java 5, которая по умолчанию на моем Mac по глупой, но уважительной причине. Как только я изменил свой сценарий sbt, чтобы явно запустить с Java6, все работало нормально.

0 голосов
/ 17 октября 2010

Независимо от исходных и целевых конфигураций вашего maven-compiler-plugin (которые контролируют только то, как компилируется ваш собственный исходный код), вы должны использовать 1.6 JVM для запуска кода Hadoop, поскольку он скомпилирован для JVM "1.6".

Итак, просто установите Java-среду 1.6 и используйте ее для запуска вашей программы.

...