Hadoop--创建文件系统对象
对于创建文件系统对象有三个基本步骤:
1.获取客户端对象。
2.调用相关函数实现功能。
3.关闭。
第一阶段的代码为:
package Test; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.Test; import org.apache.hadoop.conf.Configuration; import java.io.IOException; import java.net.URI; /** * 客户端开发的性质: * 1。获取客户端对象 * 2.调用相关函数实现功能 * 3.关闭 */ public class HDFStext { /** *创建文件系统第一版 */ @Test public void hdfstest() throws IOException, InterruptedException { //1. 创建文件系统对象 URI uri = URI.create("hdfs://Hadoop200:8020"); Configuration config = new Configuration(); String user = "yang"; FileSystem fs = FileSystem.get(uri,config,user); System.out.println("fs = " +fs ); //2.创建目录 boolean b = fs.mkdirs(new Path("/testhdfs")); fs.close(); } }
由于这样创建文件系统对象的话,会造成每次编写代码都得重新创建一个对象,造成代码冗余,因此需要进行优化,优化后代码如下:
package Test; import org.apache.hadoop.fs.FileSystem; import org.junit.After; import org.junit.Before; import org.apache.hadoop.conf.Configuration; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; /** * 客户端开发的性质: * 1。获取客户端对象 * 2.调用相关函数实现功能 * 3.关闭 */ public class HDFStext { /** * 优化代码 */ private Configuration conf; private String user; private URI uri; private FileSystem fs; /** *在执行所有Test前之前此函数 */ @Before public void init() throws URISyntaxException, IOException, InterruptedException { user = "yang"; uri = new URI("hdfs://Hadoop200:8020"); conf = new Configuration(); fs = FileSystem.get(uri,conf,user); } /** *在执行所有Test前之前此函数 */ @After public void end(){ fs.close(); } }