Hadoop之hdfs 的api操作

1、获取指定目录下的全部文件及文件夹

    /**
     * 列出 {@param path} 下的文件和文件夹
     *
     * @param fs   文件系统实例
     * @param path 路径
     * @return 返回一个目录列表
     * @throws IOException 对于任何IO错误
     */
    public static List<String> listFileAndDir(FileSystem fs, Path path) throws IOException {
   
   
        List<String> list = new ArrayList<>();
        if (fs.exists(path)) {
   
   
            FileStatus[] listStatus = fs.listStatus(path);
            for (FileStatus status : listStatus) {
   
   
                list.add(status.getPath().toString());
            }
        }
        return list;
    }

2、将本地文件拷贝到HDFS上

    /**
     * 将本地文件拷贝到hdfs上
     *
     * @param fs        文件系统实例
     * @param delSrc    是否删除原文件
     * @param src       原文件路径
     * @param dst       目标文件路径
     * @param overwrite 是否覆盖现有文件
     * @throws IOException 对于任何IO错误
     */
    public static void localCopyHDFS(FileSystem fs, boolean delSrc, boolean overwrite, Path src, Path dst) throws IOException {
   
   
        fs.copyFromLocalFile(delSrc, overwrite, src, dst);
    }

3、将HDFS上的文件拷贝到本地

    /**
     * 将HDFS上的文件拷贝到本地
     *
     * @param fs                    文件系统实例
     * @param delSrc                是否删除原文件
     * @param src                   原文件路径
     * @param dst                   目标文件路径
     * @param useRawLocalFileSystem 是否进行文件校验,如果使用本地文件系统也就是设置为true,就不会产生crc校验,否则就会产生crc校验
     * @throws IOException 对于任何IO错误
     */
    public static void hdfsCopyLocal(FileSystem fs, boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem) throws IOException {
   
   
        fs.copyToLocalFile(delSrc, src, dst, useRawLocalFileSystem);
    }

4、对文件或文件夹重命名

    /**
     * 对文件或对文件夹重命名
     *
     * @param fs  文件系统实例
     * @param src 要重命名的路径
     * @param dst 重命名后的新路径
     * @return true 重命名成功;false 重命名失败
     * @throws IOException 对于任何IO错误
     */
    public static boolean rename(FileSystem fs, Path src, Path dst) throws IOException {
   
   
        return fs.rename(src, dst);
    }

5、删除文件或文件夹

    /**
     * 删除文件或文件夹
     *
     * @param fs        文件系统实例
     * @param src       要删除的路径
     * @param recursive 如果是目录,设置为true,否则会抛出异常
     * @return true 删除成功;false 删除失败
     * @throws IOException 对于任何IO错误
     */
    public static boolean deleteFile(FileSystem fs, Path src, boolean recursive) throws IOException {
   
   
        return fs.delete(src, recursive);
    }

6、判断是文件还是文件夹

    /**
     * 判断是文件还是文件夹
     *
     * @param fs  文件系统实例
     * @param src 目标路径
     * @return true 文件夹;false 文件
     * @throws IOException 对于任何IO错误
     */
    public static boolean isFileOrDir(FileSystem fs, Path src) throws IOException {
   
   
        FileStatus[] status = fs.listStatus(src);
        boolean flag = false;
        for (FileStatus fileStatus : status) {
   
   
            flag = fileStatus.isDirectory();
        }
        return flag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值