HDFS的java操作方式

来源:互联网 发布:淘宝购物网页面源代码 编辑:程序博客网 时间:2024/05/18 08:03
HDFS的java操作方式

(1)使用协议方式访问hdfs上的文件(模仿http)
public class App1 {
    // 访问的文件路径
    static final String PATH = "hdfs://chaoren:9000/hello";
    public static void main(String[] args) throws Exception {
        //设置访问流的协议类型,指定为hdfs
        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
        URL url = new URL(PATH);
        InputStream in = url.openStream();
        IOUtils.copyBytes(in, System.out, 1024, true);}
}  

(2)使用FileSystem类对hdfs进行全方位操作(常用)
public class App2 {
    static final String PATH = "hdfs://chaoren:9000/";
    static final String DIR = "/dl";
    static final String FILE = "/dl/hello";
    public static void main(String[] args) throws Exception {
        FileSystem fileSystem = getFileSystem();
        // 创建文件夹 hadoop fs -mkdir /dl
        //madirs(fileSystem);
        //上传文件 hadoop fs -put src des
        //putData(fileSystem);
        //下载文件 hadoop fs -get src des
        //getData(fileSystem);
        //浏览文件夹
        list(fileSystem);
        
        //删除文件(夹)
        //fileSystem.delete(new Path(DIR), true);
    }
     //浏览文件夹
    private static void list(FileSystem fileSystem) throws IOException {
        FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
        for (FileStatus fileStatus : listStatus) {
            String isDir= fileStatus.isDir()? "文件夹""文件";
             String permission = fileStatus.getPermission().toString();
             short replication = fileStatus.getReplication();
             long len = fileStatus.getLen();
             String path = fileStatus.getPath().toString();
            System.out.println(isDir+"\t"+permission+"\t"+replication+"\t"+len+"\t"+path);
        }
    }
    @SuppressWarnings("unused")
     //下载文件 hadoop fs -get src des
    private static void getData(FileSystem fileSystem) throws IOException {
        FSDataInputStream in = fileSystem.open(new Path(FILE));
        IOUtils.copyBytes(in, System.out, 1024, true);
    }
    @SuppressWarnings("unused")
    //上传文件 hadoop fs -put src des
    private static void putData(FileSystem fileSystem) throws IOException,
            FileNotFoundException {
        FSDataOutputStream out = fileSystem.create(new Path(FILE));
         FileInputStream in = new FileInputStream("G:/haha.txt");
        IOUtils.copyBytes(in, out, 1024,true);
    }
    @SuppressWarnings("unused")
     // 创建文件夹 hadoop fs -mkdir /dl
    private static void madirs(FileSystem fileSystem) throws IOException {
        fileSystem.mkdirs(new Path(DIR));
    }
    private static FileSystem getFileSystem() throws Exception {
        return FileSystem.get(new URI(PATH), new Configuration());
    }
}  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 后大牙掉了一半怎么办 9岁牙龈上长牙齿怎么办 2颗门牙中间黑了怎么办 牙表面有个小洞怎么办 两岁宝宝有龋齿怎么办 3岁宝宝门牙龋齿怎么办 牙齿又黑又黄怎么办 牙齿里面的黄垢怎么办 牙齿长蛀牙有洞怎么办 牙齿空了洞疼痛怎么办 牙齿破了个洞怎么办 后牙齿有个大洞怎么办 大牙烂了个洞,痛怎么办 牙黑了有洞怎么办 牙齿内侧掉了一小块怎么办 龋坏的牙齿痛怎么办 2岁半宝宝蛀牙怎么办 3岁宝宝门牙腐蚀怎么办 2岁宝宝门牙有洞怎么办 三岁宝宝有龋齿怎么办 牙龈肿痛脸肿了怎么办 孕妇牙疼的厉害怎么办 智齿引起的牙疼怎么办 蛀牙了有个大洞牙痛怎么办 长了蛀牙牙疼怎么办 面饼表面长黑点怎么办 牙结石自己掉了怎么办 狗狗得了牙结石怎么办 牙结石掉了有洞怎么办 内衣的钩子会掉怎么办? 新胸罩肩带老掉怎么办 牙齿少了一小块怎么办 儿童牙齿有黑斑要怎么办 牙齿又黄又臭怎么办 大牙烂空了很臭怎么办 牙齿已经烂没了怎么办 牙齿已经蛀没了怎么办 牙齿整个蛀掉了怎么办 小孩恒牙长歪了怎么办 孩子换牙长歪了怎么办 9岁门牙磕松动了怎么办