Linux命令行下运行Hadoop单元测试

半世苍凉 提交于 2019-12-07 04:14:30

最近在学习Hadoop,在虚拟机上面的Centos系统下搭建了一个单机的Hadoop系统,对照《Hadoop权威指南》一边看一边运行里面的例子。由于大部分程序员都是用Eclipse来开发Hadoop程序,但我习惯于用命令行形式来写代码和运行程序。在Hadoop里面做单元测试时,用Eclipse网上倒是有很多的实例,当如何在命令行下运行单元测试确实让我犯难了,难为了我好几天。晚上在Junit官网上看了相关资料,在Java环境下运行单元测试为:

 java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

将上面的命令行进行改造,移植到hadoop后为:

 hadoop jar /usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

########################################################

在本机测试记录如下:

  • 设置CLASSPATH


CLASSPATH包含hamcrest和junit的jar文件的完整目录,例如我的CLASSPATH为:
.:/opt/jdk1.6.0_45/lib:/opt/jdk1.6.0_45/jre/lib:/root/hadoop-1.2.0/hadoop-core-1.2.0.jar:/opt/jdk1.6.0_45/lib/junit-4.11.jar:/opt/jdk1.6.0_45/lib/hamcrest-core-1.3.jar
  • 编译
// SingleResourceConfigurationTest.java
// == SingleResourceConfigurationTest
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.junit.Test;

public class SingleResourceConfigurationTest {

  @Test
  public void get() throws IOException {
    // vv SingleResourceConfigurationTest
    Configuration conf = new Configuration();
    conf.addResource("configuration-1.xml");
    assertThat(conf.get("color"), is("yellow"));
    assertThat(conf.getInt("size", 0), is(10));
    assertThat(conf.get("breadth", "wide"), is("wide"));
    // ^^ SingleResourceConfigurationTest
  }

}

javac SingleResourceConfigurationTest.java

  • 运行
hadoop  org.junit.runner.JUnitCore  SingleResourceConfigurationTest

  • 结果
JUnit version 4.5
.
Time: 0.247

OK (1 test)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!