21xrx.com
2025-06-13 11:06:11 Friday
登录
文章检索 我的文章 写文章
《Java代码示例:访问HDFS文件》
2023-06-15 15:54:51 深夜i     23     0
Java HDFS 文件读取

Hadoop分布式文件系统(HDFS)是一个可扩展的、可靠的分布式文件系统,被广泛应用于大数据处理领域。本文将介绍使用Java代码访问HDFS文件的方法,并提供示例代码。

首先需要在Java程序中添加对Hadoop的依赖,如下所示:

org.apache.hadoop
 
  
  hadoop-client
 
  
  2.7.7

接下来,可以通过以下代码获取到一个HDFS的FileSystem对象:

Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
FileSystem fs = FileSystem.get(conf);

其中,需要指定HDFS的连接地址和端口号。

获取FileSystem对象后,可以通过以下代码读取HDFS中的文件:

Path filePath = new Path("/input/test.txt");
FSDataInputStream in = fs.open(filePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
while ((line = reader.readLine()) != null) {
  System.out.println(line);
}
reader.close();
in.close();
fs.close();

其中,需要指定HDFS中文件的路径和名称,然后通过open方法获取文件输入流,最后通过BufferedReader逐行读取文件内容。

完整代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
public class HdfsReader {
  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    conf.set("fs.defaultFS", "hdfs://localhost:9000");
    FileSystem fs = FileSystem.get(conf);
    Path filePath = new Path("/input/test.txt");
    FSDataInputStream in = fs.open(filePath);
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    String line = null;
    while ((line = reader.readLine()) != null) {
      System.out.println(line);
    }
    reader.close();
    in.close();
    fs.close();
  }
}

这段代码通过读取HDFS中的/input/test.txt文件,并将文件内容输出到控制台。

  
  

评论区