【Hadoop学习之HDFS】_09HDFS的I/O流操作

一、HDFS文件上传

	@Test
    public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException {

        // 1 获取文件系统
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://SZMaster01:9000"), conf, "hadoop");

        // 2 创建输入流
        FileInputStream fis = new FileInputStream(new File("data/intr.txt"));

        // 3 获取输出流
        FSDataOutputStream fos = fs.create(new Path("/2020/intr.txt"));

        // 4 流的对拷
        IOUtils.copyBytes(fis, fos, conf);

        // 5 关闭资源
        IOUtils.closeStream(fos);
        IOUtils.closeStream(fis);
        fs.close();

        System.out.println("over");
    }

二、HDFS文件下载

	@Test
    public void getFileFromHDFS() throws IOException, InterruptedException, URISyntaxException {

        // 1 获取文件系统
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://SZMaster01:9000"), conf, "hadoop");

        // 2 创建输入流
        FSDataInputStream fis = fs.open(new Path("/zhuijia.txt"));

        // 3 获取输出流
        FileOutputStream fos = new FileOutputStream(new File("data/zhuijia.txt"));

        // 4 流的对拷
        IOUtils.copyBytes(fis, fos, conf);

        // 5 关闭资源
        IOUtils.closeStream(fos);
        IOUtils.closeStream(fis);
        fs.close();

        System.out.println("over");
    }

三、HDFS定位文件读取

// 待更新
发布了30 篇原创文章 · 获赞 30 · 访问量 777

猜你喜欢

转载自blog.csdn.net/qq_40947493/article/details/104145970