首先引入maven依赖

<!--        hadoop-->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.1.4</version>
        </dependency>

代码

package com.xiaowuqin.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

@Component
public class HdfsClient {
    //创建目录
    private FileSystem fs;
    public void init() throws URISyntaxException, IOException, InterruptedException {
        URI uri = new URI("hdfs://hadoop102:8020");
        Configuration configuration = new Configuration();
        String user="root";
        fs = FileSystem.get(uri, configuration,user);//获取一个客户端对象
    }
    public void makeDir(String dir) throws URISyntaxException, IOException, InterruptedException {
        init();
        Path path = new Path(dir);
        fs.mkdirs(path);
        fs.close();
    }
    //上传文件
    public void putFile(String fileName,String to) throws InterruptedException, IOException, URISyntaxException {
        init();
        //第一个参数:上传后是否删除本地源文件
        //第二个参数:是否允许覆盖
        //第三个参数:源文件路径
        //第四个参数: 目标文件路径
        fs.copyFromLocalFile(false,true,
                new Path(fileName),
                new Path(to));
        fs.close();
    }
    public void uploadAll() throws InterruptedException, IOException, URISyntaxException {
        for(int i=1;i<=30;i++){
            if(i<=9) {
                String path="D:\\迅雷下载\\2018年数据可视分析挑战赛-挑战1-数据\\chinavis2018挑战一数据\\2017-11-0"+i;
                String to="/BigWorks/2017-11-0" + i;
                makeDir(to);
                putFile(path+"\\checking.csv",to);
                putFile(path+"\\email.csv",to);
                putFile(path+"\\login.csv",to);
                putFile(path+"\\tcpLog.csv",to);
                putFile(path+"\\weblog.csv",to);

            }else {
                String path="D:\\迅雷下载\\2018年数据可视分析挑战赛-挑战1-数据\\chinavis2018挑战一数据\\2017-11-"+i;
                String to="/BigWorks/2017-11-" + i;
                makeDir(to);
                putFile(path+"\\checking.csv",to);
                putFile(path+"\\email.csv",to);
                putFile(path+"\\login.csv",to);
                putFile(path+"\\tcpLog.csv",to);
                putFile(path+"\\weblog.csv",to);

            }
        }
    }

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐