Hadoop-api(伪分布式文件)

在写Hadoop操作的时候
首先要在c盘下打开
C:\Windows\System32\drivers\etc打开hosts文件
在下面添加
在这里插入图片描述
前面是自己虚拟机伪分布式集群id后面是自己的节点名字。
如果不配置的话,就会在执行测试类的时候报错

配置xml文件

在这里插入图片描述
我说两个我认为重要的
上传 和 下载

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class TestHdfs {
	//hadoop对象
	Configuration conf = null;
	FileSystem fs = null;
	@Before
	public void conn() throws IOException{
		//是否去加载xml配置文件,true为加载,false为不加载
		 conf = new Configuration(true);
		 //获取FileSystem对象,用来执行文件的增删改查
		 fs = FileSystem.get(conf);
	}
	@After
	public void close() throws IOException{
		fs.close();
	}

	//上传文件
	@Test
	public  void  uploadFile() throws IOException{
		//上传的路径 相当于我的输出位置 也就是说我要把我的文件输入在这里
		Path inputFile = new Path("/user/hdfs-site.xml");
		//输出流   相当于文件的输出
		FSDataOutputStream output = fs.create(inputFile);
         //C盘下面的文件
		InputStream input=new BufferedInputStream(new FileInputStream(new File("c://aa.txt")));
		IOUtils.copyBytes(input, output, conf,true);
	}
	//下载
	@Test
	public void downloadFile() throws IOException{
		//下载的路径
		Path src = new Path("/user/hdfs-site.xml");
		FSDataInputStream input = fs.open(src);
		//创建文件输出流,输出到磁盘下的文件里
		FileOutputStream output = new FileOutputStream("c://aa.txt");
		IOUtils.copyBytes(input, output, conf,true);
		/**
		 * IOUtils.copyBytes(in, out, 4096, false)
		--in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
		--out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
		--4096表示用来拷贝的buffer大小(buffer是缓冲区)--缓冲区大小
		-- true - 是否关闭数据流,如果是false,就在finally里关掉

			作者:elrah
			链接:https://www.jianshu.com/p/ec956006a5e8
			来源:简书
			简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
		 */
	}
	


}

猜你喜欢

转载自blog.csdn.net/CSDN_bird/article/details/91951601