hdfs连接、上传文件、下载文件的操作

package com.sxuek;

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

import java.io.IOException;
import java.net.URI; // 是net包下的URI
import java.net.URISyntaxException;

/*
操作HDFS
 */
public class Demo {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        // 1.创建一个HDFS的连接配置对象 -- 指定本地里连接的参数
        // 参数是hdfs-site.xml中配置的参数
        Configuration conf = new Configuration();
        // 设置配置项 -- hdfs的地址
        // conf.set("fs.defaultFS", "hdfs://192.168.200.225:9000");
        // 在该目录下C:\Windows\System32\drivers\etc,添加ip--名 即可写下面的了
//        conf.set("fs.defaultFS", "hdfs://node1:9000");

        // 设置块的大小
        // 在代码中的配置的参数优先级高于我们Hadoop软件安装的时候配置的参数
        // conf.set("dfs.blocksize", "104857600");
        
        // 连接文件系统
        // uri:hdfs地址  conf:配置
        FileSystem fileSystem = FileSystem.get(new URI("hdfs://node1:9000"), conf, "root");

        // 上传文件 并且不能删除本地文件
//        fileSystem.copyFromLocalFile(false, new Path("G:\\shixun\\hadoop-2.8.5.tar.gz"), new Path("/"));
//        System.out.println("上传完成!");

        // 下载文件 从hdfs上下载文件
        fileSystem.copyToLocalFile(false, new Path("/hadoop-2.8.5.tar.gz"), new Path("G://"));
        System.out.println("下载完成!");

        System.out.println(fileSystem);
    }
}
posted @ 2022-07-21 07:37  jsqup  阅读(1436)  评论(0编辑  收藏  举报