21xrx.com
2024-09-17 04:28:49 Tuesday
登录
文章检索 我的文章 写文章
《Java代码示例:访问HDFS文件》
2023-06-15 15:54:51 深夜i     --     --
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文件,并将文件内容输出到控制台。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复