ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-02-22 18:02:13  阅读:163  来源: 互联网

标签:hdfs Configuration java 10 FileSystem IOUtils fileSystem new configuration


上传文件

方式一:常规流程

    @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();

标签:hdfs,Configuration,java,10,FileSystem,IOUtils,fileSystem,new,configuration
来源: https://www.cnblogs.com/S2Jgogo/p/15922074.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有