2014-07-03 3 views
6

Ich möchte ein Maven-Projekt implementieren, mit dem ich einen Hadoop MapReduce-Job testen kann. Mein größtes Problem ist die Definition der Maven-Abhängigkeiten, um die Testklassen nutzen zu können: MiniDFSCluster & MiniMRCluster.Maven-Abhängigkeiten für Hadoop: MiniDFSCluster & MiniMRCluster

Ich verwende Hadoop 2.4.1. Irgendwelche Ideen?

Antwort

2

Raten Sie, ich habe es herausgefunden. In Ihrer Datei Maven pom, fügen Sie zunächst ein neues Repository:

<repositories> 
    <repository> 
     <id>cloudera</id> 
     <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> 
    </repository> 
</repositories> 

Dann fügen Sie den folgenden Code zu Ihren Projektabhängigkeiten

<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.1</version> 
</dependency> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.11</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-auth</artifactId> 
    <version>2.0.0-cdh4.3.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-test</artifactId> 
    <version>2.0.0-mr1-cdh4.3.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.0.0-cdh4.3.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.0.0-cdh4.3.0</version> 
    <classifier>tests</classifier> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>2.0.0-cdh4.3.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>2.0.0-cdh4.3.0</version> 
    <classifier>tests</classifier> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-core</artifactId> 
    <version>2.0.0-mr1-cdh4.3.0</version> 
</dependency> 

Falls jemand interessiert das gesamte Projekt (Unit-Test für die berühmten zu bekommen Wordcount MapReduce Job, ich bin bereit, es zu teilen)

+4

Es genügt, nur hadoop-minicluster enthalten: ' org.apache.hadoop hadoop-minicluster 2.7.0 ' –

5

Falls jemand anderes noch auf eine Antwort searchinf:

MiniMRCluster ist veraltet.

Sie können MiniDFSCluster und MiniMRCluster in der Abhängigkeit erhalten

(für Gradle gezeigt)
compile group: 'org.apache.hadoop', name: 'hadoop-minicluster', version: '2.7.2' 

Die Abhängigkeit ist im Grunde nur eine pom-Datei, die die Abhängigkeiten in diesem Paket listet. Für diejenigen, die dies bis suchen möchten, ist MiniDFSCluster in dem Artefakt hadoop-hdfs:tests

Sie müssen nicht die Abhängigkeiten aus dem Repository Cloudera verwenden