HDFS API操作的访问方式及JUnit测试类的使用

HDFS API操作的访问方式 :主要分为使用文件系统访问方式和URL访问方式

package com.wyg.hdfs;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.junit.Test;

public class HDFSAPIdemo {
    
    
	// 文件系统访问  方式一
@Test
public  void getFileSystem1() throws IOException {
    
    
	//1.实例化对象
	Configuration conf=new Configuration();
	//2、设置文件系统类型
	conf.set( "fs.defaultFS", "hdfs://192.168.2.101:9000");
	//3、获取指定的文件系统
	FileSystem fileSystem=FileSystem.get(conf);
	//4、输出
	System.out.println(fileSystem);
}
	
	//方式二
	@Test
	public void getFileSystem2() throws IOException {
    
    
		FileSystem fileSystem=FileSystem.get(new Configuration());
		System.out.println(fileSystem);
	}
	
	//方式三
	@Test
	public void getFileSystem3() throws IOException {
    
    
		//实例化文件对象
		Configuration conf=new Configuration();
		//指定文件系统类型
		FileSystem fileSystem=FileSystem.newInstance(conf);
		
		System.out.println(fileSystem);
	}	
	//方式四
	@Test
	public void getFileSystem4() throws IOException, URISyntaxException {
    
    
		FileSystem fileSystem=FileSystem.newInstance(new URI("hdfs://192.168.2.101:9000"), new Configuration());
		System.out.println(fileSystem);
	}
	
	
    //url访问   方式三
	@Test
	public void urlHdfs() throws IOException {
    
    
		// 注册url
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
		// 获取hdfs文件的输入流
		InputStream inputStream = new URL("hdfs://192.168.2.101:9000/xiaohua.txt").openStream();
		// 获取本地文件的输出流
		FileOutputStream outputStream = new FileOutputStream(new File("E:\\banzhang.txt"));
		// 实现文件的拷贝
		IOUtils.copy(inputStream, outputStream);
		// 关闭流
		IOUtils.closeQuietly(inputStream);
		IOUtils.closeQuietly(outputStream);
	}
}

在编写代码的过程中需要注意的是导包不能导错

JUnit测试类的使用,也可以叫单元测试

第一步:右键maven工程
在这里插入图片描述
第二步:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

可以单独运行某个单元,也可以运行所有单元,如果想运行单个单元就右击那个单元运行
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46457946/article/details/113832589