对上一篇《HDFS API编程:第一个应用程序的开发:创建一个目录》代码进行改造,加入单元测试,如下:
package hadoop.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.URI;
public class HDFSAppJUnit {
public static final String HDFS_PATH = "hdfs://centos-7-node1:8020";
FileSystem fileSystem = null;
Configuration configuration = null;
// 在单元测试方法之前执行
@Before
public void setUp() throws Exception {
System.out.println("-----setUp-----");
configuration = new Configuration();
/**
* 构造一个访问指定HDFS系统的客户端对象
* 参数说明:
* 第一个参数:HDFS的URI
* 第二个参数:客户端指定的配置参数
* 第三个参数:客户端的身份即用户名
*/
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "root");
}
// 具体的操作写在这里
@Test
public void mkHdfsDir() throws Exception {
fileSystem.mkdirs(new Path("/nmj/hdfsapi/test"));
}
// 结束,将前面定义的变量清空
@After
public void tearDown() {
configuration = null;
fileSystem = null;
System.out.println("-----tearDown-----");
}
}
执行结果:
-----setUp-----
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
-----tearDown-----