java API 操作hdfs,读取图片内容
时间: 2023-10-11 12:10:42 浏览: 116
3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件
可以使用 Hadoop 的 Java API 操作 HDFS,并且通过输入流读取图片内容。
下面是一个简单的示例代码:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import java.io.*;
public class HDFSReadImage {
public static void main(String[] args) {
try {
// 初始化 Hadoop 配置
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
// 获取 HDFS 文件系统对象
FileSystem fs = FileSystem.get(conf);
// 获取图片文件在 HDFS 上的路径
Path imagePath = new Path("/user/hadoop/image.jpg");
// 使用输入流读取图片内容
InputStream inputStream = fs.open(imagePath);
// 将图片内容写入本地文件
OutputStream outputStream = new FileOutputStream(new File("image.jpg"));
IOUtils.copyBytes(inputStream, outputStream, conf);
// 关闭流
IOUtils.closeStream(inputStream);
IOUtils.closeStream(outputStream);
// 输出提示信息
System.out.println("图片内容已读取并保存到本地文件");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,这里使用了 Hadoop 的 `IOUtils.copyBytes()` 方法来将输入流中的内容写入输出流中,这个方法需要在 `org.apache.hadoop.io.IOUtils` 包中导入。另外,需要根据实际情况修改 HDFS 的地址和图片文件在 HDFS 上的路径。
阅读全文