2013-11-08 3 views
21

Я хотел переключиться с Hadoop 1.2.1 на Hadoop 2.2. В моем проекте я использую Maven и он может обрабатыватьHadoop 2.2 и Maven

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

woithout каких-либо проблем, однако изменения версии 2.2 в не работает, как он не доступен в центральном хранилище Maven.

Любые идеи, как я могу включить Hadoop 2.2. в моем проекте maven-ized?

ответ

36

Большинство Hadoop сердцевиной зависимостей могут быть найдены в Hadoop-клиенте:

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.2.0</version> 
</dependency> 
+1

Действительно ли это работает? Если я попробую, я получу «Невозможность найти org.apache.hadoop: hadoop-main: jar: 2.2.0», что действительно верно, поскольку hasoop-main - это только проект pom. – fikovnik

+0

Да, вы правы. Hadoop-main - только проект родительского пом. Похоже, новая рекомендация заключается в использовании артефакта hasoop-client вместо hasoop-core. Обновлено. –

+3

Я тоже застрял с Hadoop 2 и maven. Так созданный рабочий на GitHub https://github.com/alexcpn/WordCountHadoop2. Это также имеет пример теста Hadoop JUnit с использованием MRUnit и его зависимости от maven. Весь исходный код в основном из примера примера WordCount и примера модульного тестирования –

11

Для Hadoop 2.2.0, соответствующее имя пакета должно быть следующим (2014.05.27):

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>2.2.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-mapreduce-client-core</artifactId> 
    <version>2.2.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.2.0</version> 
</dependency> 

ссылка:
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common/2.2.0
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core/2.2.0
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs/2.2.0

+0

Замена ответа Ion Cojocaru на ваш ответ заставляет мою компиляцию с этим сообщением: 'ClassNotFoundException: org.apache.hadoop .hdfs.DistributedFileSystem' – fxm

+0

@fxm Я обновил свой ответ и добавил поддержку 'hadoop-hdfs'. – zeekvfu

+0

это работает: D thx –

Смежные вопросы