如何使用java下载hdfs文件

40次阅读
没有评论

共计 1481 个字符,预计需要花费 4 分钟才能阅读完成。

要使用 Java 下载 HDFS 文件,可以使用 Hadoop 的 FileSystem API 来实现。以下是一个简单的示例代码:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class HDFSFileDownload {public static void main(String[] args) {Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://localhost:9000");

        try {FileSystem fs = FileSystem.get(conf);
            Path srcPath = new Path("/path/to/source/file/in/hdfs");
            Path dstPath = new Path("/path/to/destination/file/on/local/machine");

            if (!fs.exists(srcPath)) {System.out.println("Source file does not exist");
                return;
            }

            InputStream in = fs.open(srcPath);
            BufferedInputStream reader = new BufferedInputStream(in);
            BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(dstPath.toString()));

            byte[] buffer = new byte[4096];
            int bytesRead = 0;
            while ((bytesRead = reader.read(buffer)) > 0) {writer.write(buffer, 0, bytesRead);
            }

            reader.close();
            writer.close();
            fs.close();

            System.out.println("File downloaded successfully");
        } catch (IOException e) {e.printStackTrace();
        }
    }
}

在这个示例中,首先创建一个 Hadoop 的 Configuration 对象,并设置 HDFS 的地址。然后通过 FileSystem.get 方法获取一个 FileSystem 对象。接着指定 HDFS 中的源文件路径和本地机器上的目标文件路径,并通过 FileSystem 的 open 方法打开源文件。通过 BufferedInputStream 和 BufferedOutputStream 来读取和写入文件内容,并最终将文件下载到本地机器上。

请记得替换示例中的 "/path/to/source/file/in/hdfs" 和 "/path/to/destination/file/on/local/machine" 为实际的文件路径。此外,还要根据 HDFS 的配置修改 "fs.defaultFS" 的值。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-04-07发表,共计1481字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)