Welcome to fengshiyi007's blogs
enjoy your life and make it better.

HDFS文件系统的相关操作

  • 创建目录;
  • 上传本地文件至指定目录;
  • 查看指定目录下的文件列表;
  • 读取指定文件的内容并在终端显示;
  • 下载指定文件;
  • 指定目录下完成指定文件类型的多个文件合并;
  • 文件的移动;
  • 文件的删除;

 

代码示例

  • 文件的上传:
        String source = "/my/local/store/aa.mp4";
        String destination = "hdfs://122.51.241.109:9000/data/hdfs01.mp4";
        InputStream in;
        try {
            in = new BufferedInputStream(new FileInputStream(source));
            //HDFS读写的配置文件
            Configuration conf = new Configuration();
            //生成一个文件系统对象
            FileSystem fs = FileSystem.get(URI.create(destination), conf);
            //生成一个输出流
            OutputStream out = fs.create(new Path(destination));
            IOUtils.copyBytes(in, out, 4096, true);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }    

 

  • 文件的下载:
      try {
            String srcFile = "hdfs://122.51.241.109:9000/data/hdfs01.mp4";
            Configuration conf = new Configuration();

            FileSystem fs = FileSystem.get(URI.create(srcFile), conf);
            FSDataInputStream hdfsInStream = fs.open(new Path(srcFile));

            String storePath = "/my/local/store/";
            Path hdfsPath = new Path(storePath);
            if (fs.mkdirs(hdfsPath)) {
                BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(storePath + "hdfs01" +
                        ".mp4"));
                IOUtils.copyBytes(hdfsInStream, outputStream, 4096, true);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

 

参考文献:

https://blog.csdn.net/weixin_43042683/article/details/120943721

posted on 2022-01-14 22:27  fengshiyi007  阅读(124)  评论(0编辑  收藏  举报