Java连接HDFS下载某个目录下的所有文件成文件流
时间: 2023-08-01 19:10:30 浏览: 108
利用javaAPI访问HDFS的文件
你可以使用Java API中的FileSystem和Path类来连接HDFS并下载目录下的所有文件。以下是一个简单的示例代码:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.InputStream;
public class HDFSDownload {
public static void main(String[] args) throws Exception {
String hdfsUri = "hdfs://localhost:9000";
String hdfsDir = "/data";
Configuration conf = new Configuration();
conf.set("fs.defaultFS", hdfsUri);
FileSystem fs = FileSystem.get(conf);
Path dirPath = new Path(hdfsDir);
if (!fs.exists(dirPath)) {
System.out.println("Directory does not exist!");
return;
}
for (Path filePath : fs.listStatus(dirPath)) {
if (fs.isFile(filePath)) {
InputStream inputStream = fs.open(filePath);
// 处理文件流
inputStream.close();
}
}
fs.close();
}
}
```
在上面的代码中,我们首先设置了HDFS的URI和目录路径,然后创建了一个Hadoop配置对象和一个FileSystem对象来连接HDFS。接下来,我们遍历目录下的所有文件,如果是文件,则打开输入流并进行处理。最后,我们关闭输入流和FileSystem对象。
阅读全文