hadoop入门(10):hdfs的java编程-文件的上传与下载

2022/2/22 20:26:45

本文主要是介绍hadoop入门(10):hdfs的java编程-文件的上传与下载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

上传文件

方式一:常规流程

    @Test
    public void uploadFile2Hdfs() throws IOException {
        // configuration
        Configuration configuration = new Configuration();
        // 设置namenode
        configuration.set("fs.defaultFS","hdfs://node001:8020");
        // filesystem
        FileSystem fileSystem = FileSystem.get(configuration);

        // 拷贝文件
        fileSystem.copyFromLocalFile(new Path("pom.xml"),new Path("/sjj/test"));
        // 释放资源
        fileSystem.close();
    }

上传pom.xml

方式二:I/O上传文件

    @Test
    public void putFile2Hdfs() throws URISyntaxException, IOException, InterruptedException {
        // 获取文件系统
        Configuration configuration = new Configuration();
        FileSystem fileSystem = FileSystem.get(new URI("hdfs://node001:8020"), configuration, "sjj");
        // 创建输入流
        FileInputStream fis = new FileInputStream(new File("pom.xml"));
        // 获取输入流,父目录不存在会自动创建
        FSDataOutputStream fos = fileSystem.create(new Path("/sjj/test/pom.xml"));
        // 流对拷 org.apache.commons.io.IOUtils
        IOUtils.copy(fis,fos);
        // 释放资源
        IOUtils.closeQuietly(fos);
        IOUtils.closeQuietly(fis);
        fileSystem.close();
    }

下载文件

方式一:常规流程

    @Test
    public void downloadFileFromHdfs() throws IOException {
        // configuration
        Configuration configuration = new Configuration();
        // 设置namenode
        configuration.set("fs.defaultFS","hdfs://node001:8020");
        // filesystem
        FileSystem fileSystem = FileSystem.get(configuration);

        // 下载文件
        fileSystem.copyToLocalFile(new Path("/sjj/test/pom.xml"),new Path("/Users/soutsukyou/Desktop/ForHadoop/"));
        // 释放资源
        fileSystem.close();
    }

下载pom.xml

方式二:I/O下载文件

    @Test
    public void getFileFromHdfs() throws URISyntaxException, IOException, InterruptedException {
        // 获取文件系统
        Configuration configuration = new Configuration();
        FileSystem fileSystem = FileSystem.get(new URI("hdfs://node001:8020"), configuration, "sjj");
        // 创建输入流
        FSDataInputStream fis = fileSystem.open(new Path("/sjj/test/pom.xml"));
        // 获取输出流
        FileOutputStream fos = new FileOutputStream("/Users/soutsukyou/Desktop/ForHadoop/");
        // 流对拷 org.apache.commons.io.IOUtils
        IOUtils.copy(fis,fos);
        // 释放资源
        IOUtils.closeQuietly(fos);
        IOUtils.closeQuietly(fis);
        fileSystem.close();
    }

其它操作

// 删除文件
fileSystem.delete();
// 重命名文件
fileSystem.rename();


这篇关于hadoop入门(10):hdfs的java编程-文件的上传与下载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程