Hadoop怎么使用FileSystem来读取文件
时间: 2024-02-17 09:05:42 浏览: 85
一步一步跟我学习hadoop(6)----hadoop利用FileSystem API 执行hadoop文件读写操作
在Hadoop中,可以使用Java的FileSystem API来读取文件。以下是一个简单的例子:
```java
import java.io.IOException;
import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class ReadFileFromHDFS {
public static void main(String[] args) {
Configuration conf = new Configuration();
try {
FileSystem fs = FileSystem.get(conf);
Path filePath = new Path("hdfs://localhost:9000/path/to/file.txt");
if (fs.exists(filePath)) {
InputStream inputStream = fs.open(filePath);
byte[] buffer = new byte[1024];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, bytesRead));
}
inputStream.close();
} else {
System.out.println("File does not exist!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们首先创建了一个`Configuration`对象,然后通过`FileSystem.get()`方法获取了一个`FileSystem`对象。接着,使用`Path`类创建了一个文件路径对象,并使用`fs.exists()`方法检查该文件是否存在。如果存在,则使用`fs.open()`方法打开文件,并使用`InputStream.read()`方法读取文件内容,最后关闭输入流。如果文件不存在,则输出错误信息。
需要注意的是,在读取文件之前,需要先配置好Hadoop的环境变量,以及启动Hadoop的相关服务。
阅读全文