HDFS API编程常用类和函数总结

一、两个重要的类

1. Configuration类

创建一个Configuration对象时,其构造方法会默认加载hadoop中的两个配置文件,分别是hdfs-site.xml以及core-site.xml,这两个文件中会有访问hdfs所需的参数值,指定了hdfs的地址,通过这个地址访问hdfs。

一个应用程序只创建一个Configuration。

2. FileSystem类

该抽象类类提供了丰富的方法用于对文件系统进行操作,比如创建目录、删除文件、重命名等。

二、常用函数

1. 判断路径是否存在

FileSystem.exists(Path path)
path: 路径

2. 向HDFS中上传文件

FileSystem.copyFromLocalFile(Path src, Path dst)
src: 本地文件路径
dst: HDFS文件系统中的目的路径

3. 从HDFS中下载文件

FileSystem.copyToLocalFile(Path src, Path dst)
src: HDFS中文件路径
dst: 本地文件系统中的目的路径

4. 删除HDFS中指定文件

FileSystem.delete(Path path, Boolen recursive)
path: 指定文件的路径
recursive: 是否递归删除,是则为true,否则为false

5. 创建HDFS中的文件

FileSystem.mkdirs(Path path)
path: 文件目录

6. 将文件从源路径移动到目的路径

FileSystem.rename(Path src, Path dst)
src: HDFS中源路径
dst: HDFS中目的路径

7.获取文件信息(大小、权限等)

首先需要创建一个数组存放该目录下所有文件的FileStatus对象。

FileStatus[] fileStatuses = hfs.listStatus(HDFSPath);
//hfs为自己创建的FileSystem对象
·fileStatuses[i].getLen(): 返回的值类型为long,文件大小。
·fileStatuses[i].getOwner(): 返回值类型为String,所有者信息。
·fileStatuses[i].getPath(): 返回值类型为Path,文件路径。
·fileStatuses[i].getPermission(): 返回值类型为FsPermission,文件权限。
·fileStatuses[i].getModificationTime(): 返回值类型为long,修改时间。

判断目录是否为空:

if(fileStatuses.length > 0){
	System.out.println("该目录不为空!");
}else{
	System.out.println("该目录为空");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值