HDFS Java API介绍
Hadoop整合了众多文件系统,HDFS只是这个文件系统的一个实例。HDFS Java API主要包如下所示:
org.apache.hadoop.fs.FileSystem:它是通用文件系统的抽象基类,可以被分布式文件系统继承,它具有许多实现类,例如:LocalFileSystem、DistributedFileSystem、FtpFileSystem等。
org.apache.hadoop.fs.FileStatus:它用于向客户端展示系统中文件和目录的元数据,具体包含文件大小、块大小、副本信息、修改时间等。
org.apache.hadoop.fs.FSDataInputStream:文件输入流,用于读取Hadoop文件。
org.apache.hadoop.fs.FSDataOutputStream:文件输出流,用于写Hadoop文件。
org.apache.hadoop.conf.Configuration:访问配置项,默认配置参数在core-site.xml中,用户可以添加相应的配置参数。
org.apache.hadoop.fs.Path:用于表示Hadoop文件系统中的一个文件或者一个目录的路径。
在Java中操作HDFS,首先需要创建一个客户端实例,主要涉及以下类:
Configuration:该类的对象封装了客户端或者服务器的配置,每个配置选项是一个键值对,通常情况下,Configuration实例会自动加载HDFS的配置文件core-site.xml,从中获取Hadoop集群的配置信息。
FileSystem:该类的对象是一个文件系统对象,通过该对象的一些方法可以对文件进行操作,常用方法如表1示;
表1 FileSystem常用方法
方法名称 | 方法描述 |
---|---|
copyFromLocalFile(Path src,Path dst) | 从本地磁盘复制文件到HDFS |
copyToLocalFile(Path src,Path dst) | 从HDFS复制文件到本地磁盘 |
mkdirs(Path f) | 建立子目录 |
rename(Path src,Path dst) | 重命名文件或文件夹 |
delete(Path f) | 删除指定文件 |
小提示:
Hadoop API非常庞大,读者可以通过Hadoop官方文档自行查阅学习,地址如下:http://hadoop.apache.org/docs/stable/api/index.html
。