HDFS的上传下载API

简介: 代码实例package oa.epoint.com.hdfs;import java.io.FileOutputStream;import java.

代码实例

package oa.epoint.com.hdfs;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.URI;
import java.util.Scanner;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class HdfsTest {

    public static void upload() throws Exception {
        Configuration conf = new Configuration();
        URI uri = new URI("hdfs://100.2.5.1:8020");
        FileSystem fs = FileSystem.get(uri, conf, "HDFS");
        Path resP = new Path("D://files/file1.txt");
        Path destP = new Path("/tmp");

        if (!fs.exists(destP)) {
            fs.mkdirs(destP);
        }
        fs.copyFromLocalFile(resP, destP);
        fs.close();
        System.out.println("***********************");
        System.out.println("上传成功!");

    }

    public static void download() throws Exception {
        Configuration conf = new Configuration();
        String dest = "hdfs://100.2.5.1/tmp/file1.txt";
        String local = "D://files/downloads/file1.txt";
        FileSystem fs = FileSystem.get(URI.create(dest), conf, "hdfs");
        FSDataInputStream fsdi = fs.open(new Path(dest));
        OutputStream output = new FileOutputStream(local);
        IOUtils.copyBytes(fsdi, output, 4096, true);
        System.out.println("***********************");
        System.out.println("下载成功!");
    }

    public static void main(String[] args) throws Exception {
        String arg = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("1、上传文件");
        System.out.println("2、下载文件");
        boolean isconture = true;
        while (isconture) {
            arg = scanner.next();
            if ("1".equals(arg)) {
                upload();
            } else if ("2".equals(arg)) {
                download();
            }
            System.out.println("是否继续 y/n");
            if (scanner.next().equals("n")) {
                isconture = false;
            }
        }
        scanner.close();
    }
}
目录
相关文章
|
6月前
|
Java API Maven
HDFS的API操作
HDFS的API操作
63 0
|
6月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
694 0
|
7天前
|
存储 分布式计算 Hadoop
【赵渝强老师】HDFS数据上传和下载的过程
本文介绍了Hadoop的HDFS中客户端如何通过NameNode上传和下载数据。上传时,数据按块保存至DataNode并实现冗余;下载时,客户端从DataNode获取数据块。文中配有详细流程图及B站视频讲解。
|
1月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
58 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
1月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
40 3
|
1月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
40 2
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
30 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
44 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
47 1
|
5月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
147 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)