概述
基本的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的基本使用
最后
以上就是执着犀牛为你收集整理的MapReduce编程中FileSystem接口——HDFS的基本使用的全部内容,希望文章能够帮你解决MapReduce编程中FileSystem接口——HDFS的基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复