基本的HDFS操作,在linux总通过hadoop fs -help可以获取所有的命令详细帮助文件。
Java抽象类org.apache.hadoop.fs.FileSystem定义了hadoop的一个文件系统接口。Hadoop中关于文件操作类基本上全部是在"org.apache.hadoop.fs"包中,这些API能够支持的操作包含:打开文件,读写文件,删除文件等。
Hadoop类库中最终面向用户提供的接口类是FileSystem,该类是个抽象类,只能通过来类的get方法得到具体类。
HDFS中路径类都是Path,输入Dir需要加一层封装
new Path(Dir)
目录
一、构造方法(生成fs)
二、具体实现方法
1. HDFS文件上传,将本地文件上传到HDFS
2. HDFS文件下载,将HDFS文件下载到本地
3. 检查文件或目录是否存在
4. HDFS文件删除
5. HDFS文件重命名
6. 一次性新建所有目录(包括父目录),f是完整的目录路径
7. 在HDFS上创建文件,f为文件的完整路径
8. 查看HDFS文件的最后修改时间
9. 读取HDFS某个目录下所有文件
参考文档
一、构造方法
以下两种静态工厂方法可以获取FileSystem的实例
uri是HDFS的uri,例如new URI("hdfs://hadoop102:9000")
public staticFileSystem.get(Configuration conf) throws IOException
public staticFileSystem.get(URI uri, Configuration conf) throws IOException
二、具体实现方法
1. HDFS文件上传,将本地文件上传到HDFS
public void copyFromLocalFile(Path src, Path dst) throws IOException
2. HDFS文件下载,将HDFS文件下载到本地
参数1:是否将HDFS上原文件删除
参数2:HDFS文件路径
参数3:需要将文件下载到的目的路径
参数4:是否开启文件校验
public void copyToLocalFile(boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem) throws IOException
3. 检查文件或目录是否存在
public boolean exists(Path f) throws IOException
4. HDFS文件删除
f为需要删除文件的完整路径,recuresive用来确定是否进行递归删除
public boolean delete(Path f,Boolean recursive) throws IOException
5. HDFS文件重命名
FileSystem.rename(Path src,Path dst)
6. 一次性新建所有目录(包括父目录),f是完整的目录路径
FileSystem.mkdirs(Path f)
7. 在HDFS上创建文件,f为文件的完整路径
FileSystem.create(Path f)
8. 查看HDFS文件的最后修改时间
FileSystem.getModificationTime()
9. 读取HDFS某个目录下所有文件
FileStatus[] listStatus = fs.listStatus(new Path("Dir路径"));
listStatus.getPath()
参考文档
Hadoop之HDFS的FileSystem接口详解-hdfs的基本使用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)