使用java api实现hdfs增删改查
时间: 2024-09-09 12:15:11 浏览: 83
编写Java代码对HDFS进行增删改查操作代码实例
在Java中,通过Hadoop HDFS API(Hadoop Distributed File System Application Programming Interface)可以实现对Hadoop分布式文件系统(HDFS)的操作。以下是基本的增删改查操作:
1. **创建(Create)**:
- 使用`FileSystem`接口的`create()`方法创建一个新的文件或目录。例如:
```java
FileSystem fs = FileSystem.get(conf);
Path filePath = new Path("/path/to/new/file");
boolean created = fs.create(filePath).close(); // 返回true表示成功创建
```
2. **读取(Read)**:
- 使用`FSDataInputStream`打开文件并读取数据:
```java
FSDataInputStream in = fs.open(filePath);
byte[] buffer = new byte[1024];
int bytesRead = in.read(buffer); // 读取指定字节数
```
3. **修改(Update)**:
- 对于文件内容的修改,通常需要先关闭当前流,然后创建新的流进行更新。HDFS本身并不支持直接修改已存在的文件,但可以删除旧文件后再创建新的,这相当于覆盖写入:
```java
in.close();
fs.delete(filePath, true); // 删除旧文件
OutputStream out = fs.create(filePath);
out.write(buffer); // 写入新内容
out.close();
```
4. **删除(Delete)**:
- 使用`delete()`方法删除文件或目录:
```java
fs.delete(filePath, true); // 强制删除,包括子目录
```
5. **查询(List)**:
- 可以使用`listStatus()`获取目录下的所有文件和目录信息:
```java
FileStatus[] statuses = fs.listStatus(filePath);
for (FileStatus status : statuses) {
String fileName = status.getPath().getName();
System.out.println(fileName);
}
```
阅读全文