S++

千线一眼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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

posted on   S++  阅读(405)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示