目录
配置依赖:
使用 Maven 进行项目管理,在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.1</version>
</dependency>
编写java代码:
提供了基本的 HDFS 文件系统操作功能,涵盖了文件上传、下载、目录创建、删除、获取元数据以及列出文件和目录的功能。通过这些方法,可以在 Java 程序中方便地操作和管理 HDFS 中的数据和文件系统。
主类,调用各个方法
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
// 创建配置对象
Configuration conf = new Configuration();
// 设置HDFS的URI
conf.set("fs.defaultFS", "hdfs://localhost:8020"); //在本地启动的Hadoop
// 创建FileSystem对象
FileSystem fs = FileSystem.get(conf);
// 从HDFS中删除文件或目录
//HDFSOperations.deleteFromHDFS(fs,"/test2",false);
// 在HDFS中创建目录
//HDFSOperations.createHDFSDirectory(fs,"/test2");
// 获取HDFS文件或目录的元数据
//HDFSOperations.getHDFSFileMetadata(fs,"/");
// 列出HDFS目录中的文件和子目录
//HDFSOperations.listHDFSFiles(fs,"/test2");
// 从HDFS下载文件到本地
//HDFSOperations.downloadFromHDFS(fs,"/test2","Desktop/test2");
// 上传本地文件到HDFS
//HDFSOperations.uploadToHDFS(fs,"Desktop/Book1.csv","/test2");
// 获取HDFS根目录
Path root = new Path("/");
FileStatus[] status = fs.listStatus(root);
// 输出根目录下的文件和目录
for (FileStatus file : status) {
System.out.println(file.getPath().toString());
}
// 关闭FileSystem对象
fs.close();
}
}
操作类,编写各操作方法
import org.apache.hadoop.fs.*;
import java.io.IOException;
public class HDFSOperations {
// 上传本地文件到HDFS
public static void uploadToHDFS(FileSystem fs,String srcPath, String destPath) throws IOException {
fs.copyFromLocalFile(new Path(srcPath), new Path(destPath));
}
// 从HDFS下载文件到本地
public static void downloadFromHDFS(FileSystem fs,String srcPath, String destPath