HDFS在JAVA中的API

导入依赖的jar包,导入hdfs配置文件
测试类中创建FileSystem.get(new Configuration) 返回FileSystem fs实例对象

创建hdfs中的目录(包括不存在的目录)

	fs.mkdirs(new Path("/test/input"));//返回boolean

查看hdfs某目录下的文件是否存在

	fs.exists(new Path("/home/aaaa"));//返回boolean

给hdfs中的文件重命名

fs.rename(new Path("/home/aaaa"), new Path("/home/bbbb"));//返回boolean,第二个参数不存在则会新建

删除hdfs中的某文件

 fs.delete(new Path("/home/bbbb"));//返回boolean

上传本地文件到hdfs某目录

	//获取本地的文件
	File localFile = new File("d://aaaab.txt");
	//缓冲流读到本地文件的内容,作为到hdfs的输入
	InputStream input = new BufferedInputStream(new FileInputStream(localFile));
	//在hdfs中新建目录,名字为本地的文件名,此文件作为输出
	FSDataOutputStream output = fs.create(new Path("/home/"+localFile.getName()));
	//将input流输入到output流输出
	IOUtils.copyBytes(input, output, conf, true);
	--in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
	--out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
	--conf:是传入new Configuration的实例化对象
	--true - 是否关闭数据流,如果是false,就在finally里关掉,true则执行完后关掉
	//执行完后本地的文件会保留
	//执行完后本地的文件会消失
	fs.copyFromLocalFile(Path src, Path  dst);

下载hdfs中的文件到本地

//获取hdfs中的文件的内容的流,作为到本地的输入
	FSDataInputStream input = fs.open(new Path("/home/aaaa"));
//获取本地的文件的输出流,作为输出
	FileOutputStream output = new FileOutputStream(new File("d://aaaab.txt"));
//将input流输入到output流输出
	IOUtils.copyBytes(input, output, conf, true);
	-in:是FSDataInputStream类的对象,是有关读取文件的类,也就是所谓“输入流”
	--out:是FSDataOutputStream类的对象,是有关文件写入的类,也就是“输出流”
	--conf:是传入new Configuration的实例化对象
	--true - 是否关闭数据流,如果是false,就在finally里关掉,true则执行完后关掉
	//执行完后本地的文件会保留
	//	执行完后hdfs的文件会消失
	fs.copyToLocalFile(Path src, Path  dst);

仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值