我想实现一个 Maven 项目,它可以帮助我对 Hadoop MapReduce 作业进行单元测试。我最大的问题是定义 Maven 依赖项以便能够使用测试类:MiniDFSCluster 和 MiniMRCluster。
我正在使用 Hadoop 2.4.1。有任何想法吗?
我想实现一个 Maven 项目,它可以帮助我对 Hadoop MapReduce 作业进行单元测试。我最大的问题是定义 Maven 依赖项以便能够使用测试类:MiniDFSCluster 和 MiniMRCluster。
我正在使用 Hadoop 2.4.1。有任何想法吗?
如果其他人仍在寻找答案:
MiniMRCluster 现在已弃用。
您可以在依赖项中获取 MiniDFSCluster 和 MiniMRCluster(显示为 Gradle)
compile group: 'org.apache.hadoop', name: 'hadoop-minicluster', version: '2.7.2'
依赖项基本上只是一个 pom 文件,列出了这个包中的依赖项。对于那些想要查看这个的人来说,MiniDFSCluster 在神器中hadoop-hdfs:tests
您不必使用 Cloudera 存储库中的依赖项
我想我想通了。在你的 Maven pom 文件中,首先添加一个新的存储库:
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
然后将以下内容添加到您的项目依赖项中
<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>
如果有人有兴趣获得整个项目(著名的 WordCount MapReduce 工作的单元测试,我愿意分享)