目录

一、读取HDFS文件

1、读取HDFS文件,保存为本地文件

二、重命名目录或文件 

1、重命名目录 

 2、重命名文件

三、显示文件列表 

1、显示指定目录下文件全部信息 

2、显示指定目录下文件路径和长度信息 

四、获取文件块信息 

五、创建目录

六、判断文件是否存在

七、判断Path指向目录还是文件 

八、删除文件或目录 

1、删除文件

2、删除目录

3、删除目录或文件


一、读取HDFS文件

1、读取HDFS文件,保存为本地文件

  • 任务:将/ied01/test.txt下载到项目的download目录里
  • 创建download目录

创建read2()方法 

运行read2() 

二、重命名目录或文件 

  • 相当于Shell里的hdfs dfs -mv命令
  • 在net.hw.hdfs包里创建RenameDirOrFile类

1、重命名目录 

  • 任务:将/ied01目录更名为/lzy01
  • 编写rename()方法

运行 rename()方法

利用Hadoop WebUI界面查看

 2、重命名文件

任务:将lzy01目录下的hello.txt重命名为hi.txt

编写renameFile()方法

运行renameFile()方法

利用Hadoop WebUI界面查看

三、显示文件列表 

在net.hw.hdfs包里创建ListHDFSFiles类

1、显示指定目录下文件全部信息 

任务:显示/lzy01目录下的文件列表

编写list1()方法

  • 文件系统对象的listFiles()方法第二个参数设置true,这样可以将/lzy01目录的一切文件,包括子目录里的文件,都一网打尽
  • 运行list1()方法

2、显示指定目录下文件路径和长度信息 

编写list2()方法

运行list2()方法

四、获取文件块信息 

任务:获取/lzy01/hadoop-3.3.4.tar.gz文件块信息

hadoop压缩包会分割成6个文件块

在hdfs包里创建GetBlockLocations类 

用到getFileBlockLocations()方法来获取物理切块信息

参数1:文件路径
参数2:起点
参数3:长度

编写代码,获取文件块信息 

运行main方法

  • 由此可见,hadoop-3.3.4.tar.gz被hadoop物理切分成6块,前5块长度均为134217728字节(128MB),第6块长度为24369142字节(23.24MB)。

五、创建目录

  • 任务:在HDFS上创建/ied01目录
  • 在net.hw.hdfs包里创建MakeDirOnHDFS类
  • 编写代码

 

 运行main()方法

利用Hadoop WebUI界面查看

六、判断文件是否存在

  • 任务:判断HDFS上/ied01目录是否存在,判断/ied01/hadoop.txt文件是否存在

  • 在hdfs包里创建DirFileExistsOrNot类

运行代码

编写fileExists()方法 

运行程序

七、判断Path指向目录还是文件 

在hdfs包里创建PathToFileOrDir类

编写代码

运行代码

结果明显不对,说明程序逻辑上有问题,原因在于/ied08目录不存在,/lzy01/howard.txt文件不存在,修改代码,加上目录或文件存在与否的判断

 运行程序

八、删除文件或目录 

  • 类似于HDFS Shell里的hdfs dfs -rmdir和hdfs dfs -rm -r命令
  • 在hdfs包里创建DeleteFileOrDir类

1、删除文件

任务:删除/lzy01/hi.txt文件

编写deleteFile()方法

运行deleteFile()方法

可以在删除文件之前,判断文件是否存在,需要修改代码

运行代码

2、删除目录

  • 任务:删除/lzy01目录
  • 编写deleteDir()方法

 

运行deleteDir()方法,查看结果

再运行deleteDir()方法,查看结果

3、删除目录或文件

  • 进行三个层面的判断:判断是否存在、判断类型(目录或文件)、判断删除是否成功

  • 任务:删除/ied02/hello.txt文件和/lzy01目录

编写delete()方法

运行delete()方法

再次运行

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐