• hdfs文件操作的api


    package Utils;
    
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.LocatedFileStatus;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.fs.RemoteIterator;
    
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    public class HdfsUtil {
        private FileSystem fs;
        HdfsUtil(String user){
            Configuration cfg = new Configuration();
            URI uri = null;
            try {
                uri = new URI("hdfs://**:9000");
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
            try {
                // 根据配置文件,实例化成DistributedFileSystem
                fs = FileSystem.get(uri, cfg, user); // 得到fs句柄
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 上传文件
         */
        public void upload(String src, String dst){
            try {
                // 上传
                fs.copyFromLocalFile(new Path(src), new Path(dst));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 下载文件
         */
        public void download(String src, String dst){
            try {
                // 下载
                fs.copyToLocalFile(new Path(src), new Path(dst));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 创建文件夹
         */
        public void mkdir(String dir){
            try {
                fs.mkdirs(new Path(dir));
            } catch (IOException e) {
                // 创建目录
                e.printStackTrace();
            }
        }
    
        /**
         * 删除文件
         */
        public void delete(String name, boolean recursive){
            try {
                fs.delete(new Path(name), recursive);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 重命名
         */
        public void rename(String source, String dst){
            try {
                fs.rename(new Path(source), new Path(dst));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 列出文件信息
         */
        public void list(String dir, boolean recursive){
            try {
                RemoteIterator<LocatedFileStatus> iter = fs.listFiles(new Path(dir), recursive);
                while (iter.hasNext()){
                    LocatedFileStatus file = iter.next();
                    System.out.println(file.getPath().getName());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    https://necydcy.me/
  • 相关阅读:
    Vue项目一、node.js和npm的安装和环境搭建
    vue-cli脚手架目录(2.0)
    你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
    100以内最大的能被17整除的整数
    what is artificial Intelligence
    画图
    No understanding(2)
    No understanding(1)
    对决
    谁是最好的Coder
  • 原文地址:https://www.cnblogs.com/miria-486/p/9962007.html
Copyright © 2020-2023  润新知