Java上传本地文件到HDFS

Java上传本地文件到HDFS的三种方法
本文介绍了使用Java编程将本地文件上传到HDFS的三种方法,包括使用FileSystem API的基本步骤,如配置HDFS地址、检查目标路径、创建目录及执行文件复制操作。

Java上传本地文件到HDFS

方法一

/**
 * @ Author zhangsf
 * @CreateTime 2022/2/9 - 4:33 PM
 */
package SparkWordCount;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class CopyFile {
    public static void main(String[] args) {
        Configuration conf = new Configuration();
        conf.addResource(new Path("/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/core-site.xml"));
        String localDir = "/usr/local/Cellar/hadoop/3.3.1/sbin/httpfs.sh";
        String hdfsDir = "hdfs://localhost:9000/zhangvalue";
        try{
            Path localPath = new Path(localDir);
            Path hdfsPath = new Path(hdfsDir);
            FileSystem hdfs = FileSystem.get(conf);
            if(!hdfs.exists(hdfsPath)){
                hdfs.mkdirs(hdfsPath);
            }
            hdfs.copyFromLocalFile(localPath, hdfsPath);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

方法二

/**
 * @ Author zhangsf
 * @CreateTime 2022/2/9 - 5:09 PM
 */
package SparkWordCount;

import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
//上传本地文件到HDFS
public class UploadToHDFS {
    public static void main(String[] args) throws IOException {
        //获取配置文件信息
        Configuration conf = new Configuration();
        conf.addResource(new Path("/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/core-site.xml"));
        //获取文件系统
        FileSystem hdfs = FileSystem.get(conf);
        //文件名称
        Path src = new Path("/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/core-site.xml");
        Path dst = new Path("hdfs://localhost:9000/zhangvalue");
        if(!hdfs.exists(dst)){
            hdfs.mkdirs(dst);
        }
        hdfs.copyFromLocalFile(src, dst);
        System.out.println("Upload to " + conf.get("fs.default.name"));
        FileStatus files[] = hdfs.listStatus(dst);
        for(FileStatus file:files){
            System.out.println(file.getPath());
        }
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法三

/**
 * @ Author zhangsf
 * @CreateTime 2022/2/9 - 5:20 PM
 */
package SparkWordCount;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class UploadSingle {
    public static void main(String[] args) throws URISyntaxException, IOException{
        Configuration conf = new Configuration();
        URI uri = new URI("hdfs://localhost:9000");
        FileSystem fs = FileSystem.get(uri,conf);
        Path resP = new Path("/usr/local/Cellar/hadoop/3.3.1/libexec/etc/hadoop/yarn-env.sh");
        Path destP = new Path("/zhangvalue");
        if(!fs.exists(destP)){
            fs.mkdirs(destP);
        }
        fs.copyFromLocalFile(resP, destP);
        fs.close();
    }
}

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值