了解HDFS Java API
Hadoop文件系统API文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/filesystem/index.html
1、HDFS常见类与接口
- Hadoop整合了众多文件系统,HDFS只是这个文件系统的一个实例。
类或接口 | 功能描述 |
---|---|
org.apache.hadoop.fs.FileSystem | 一个通用文件系统的抽象基类,可被分布式文件系统继承。 |
org.apache.hadoop.fs.FileStatus | 文件状态接口,用于向客户端展示系统中文件和目录的元数据。具体包括文件大小、块大小、副本信息、所有者、修改时间等,可通过FileSystem.listStatus()方法获得具体的实例对象。 |
org.apache.hadoop.fs.FileDataInputStream | 文件输入流,用于读取Hadoop文件。 |
org.apache.hadoop.fs.FileDataOutputStream | 文件输出流,用于写Hadoop文件。 |
org.apache.hadoop.fs.Configuration | 访问配置项,所有配置项的值,如果在core-site.xml中有对应的配置,则以core-site.xml为准。 |
org.apache.hadoop.fs.Path | 路径,用于表示Hadoop文件系统中的一个文件或一个目录的路径。 |
org.apache.hadoop.fs.PathFilter | 路径过滤器接口,通过实现方法PathFilter.accept(Path path)来判断是否接收路径path表示的文件或目录。 |
2、FileSystem的常用方法
-
FileSystem类API文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/filesystem/filesystem.html
-
FileSystem对象的一些方法可以对文件进行操作
方法名 | 功能描述 |
---|---|
copyFromLocalFile(Path src, Path dst) | 从本地磁盘复制文件到HDFS |
copyToLocalFile(Path src, Path dst) | 从HDFS复制文件到本地磁盘 |
mkdirs(Path f) | 建立子目录 |
rename(Path src, Path dst) | 重命名文件或文件夹 |
delete(Path f) | 删除指定文件 |
(二)编写Java程序访问HDFS
1、创建Maven项目
单击【Finish】按钮
2、添加相关依赖
- 在
pom.xml
文件里添加hadoop
和junit
依赖
<dependencies>
<!--hadoop客户端-->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.4</version>
</dependency>
<!--单元测试框架-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
</dependencies>
Maven Repository(Maven仓库)- https://mvnrepository.