21xrx.com
2024-11-05 16:42:39 Tuesday
登录
文章检索 我的文章 写文章
我最近进行了一次 HDFS Java API 下载文件到本地的实验
2023-06-11 01:20:29 深夜i     --     --
HDFS Java

我最近进行了一次 HDFS Java API 下载文件到本地的实验,取得了不错的成果。在此分享一下我的研究成果,希望对大家有所帮助。

API、文件下载

首先,我创建了一个 Java 项目,并在 pom.xml 中添加了以下依赖项:

xml

   org.apache.hadoop

   hadoop-hdfs

   3.3.0

   org.apache.hadoop

   hadoop-common

   3.3.0

然后,我编写了以下 Java 代码:


import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.URI;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

public class DownloadFile {

  private static final String HDFS_URI = "hdfs://localhost:9000";

  private static final String FILE_PATH = "/user/hadoop/example/file.txt";

  private static final String DOWNLOAD_PATH = "/tmp/file.txt";

  public static void main(String[] args) throws IOException {

    Configuration conf = new Configuration();

    FileSystem fs = FileSystem.get(URI.create(HDFS_URI), conf);

    InputStream in = fs.open(new Path(FILE_PATH));

    FileOutputStream out = new FileOutputStream(DOWNLOAD_PATH);

    byte[] buffer = new byte[1024];

    int length;

    while ((length = in.read(buffer)) > 0) {

      out.write(buffer, 0, length);

    }

    in.close();

    out.close();

    fs.close();

    System.out.println("File downloaded successfully.");

  }

}

代码中,我首先定义了 HDFS 的 URI、待下载的 HDFS 文件路径、以及下载后保存到本地的路径。接着,我创建了一个 HDFS 的文件系统实例,并打开待下载的文件。然后,我创建了一个本地文件输出流,并使用一个缓冲区从输入流中读写数据,同时关闭输入流、输出流以及文件系统实例,最后输出下载成功的信息。

这是我进行 HDFS Java API 下载文件到本地的实验报告,我认为这对于学习 HDFS 以及 Java API 的应用有所帮助。

  
  

评论区

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