zoukankan      html  css  js  c++  java
  • hadoop学习记录(二)HDFS java api

    FSDateinputStream 对象

    FileSystem对象中的open()方法返回的是FSDateInputStream对象,改类继承了java.io.DateInoutStream接口。支持随机访问

    Seekable接口

    支持在文件中找到指定位置,并提供一个查询当前位置相对于文件起始位置偏移量的查询方法。

    public interface Seekable{
        //seek()可以移到文件中任意一个绝对位置
        void seek(long pos);
        long getPos();
        boolean  seekToNewSource(long targetPos);
    }
    

     需要注意的是:seek()方法是一个相对高开销的操作,需要慎重使用。如要访问文件,还是用流数据如MapReduce,而不是大量的seek()!

    写入数据

    FIleSystem有新建文件夹的方法

    • public FSDaateOutputStream create(path f);该方法指定一个path对象,如果不存在则自动创建有时候我们希望文件夹不存在时就报出失败而不是创建完写入,这时就需要先调用exists()来判断。
    • 另一个方法是append(),允许在一个已有文件的末尾追加数据
    • progress()方法用于传递回调接口,可以通知应用数据写入datenode的进度。
     1 String localSrc = args[0];
     2 String dst = args[1];
     3 //获取文件读取流
     4 InputStream in = new InputStream(new FileInputStream(localSrc));
     5 
     6 Configuration conf = new Configuration();
     7 FileSystem fs = FileSystem.get(URI.create(dst),conf);
     8 OutputStream out  = fs,create(new Path(dst),new Progressable(){
     9     public void progress(){
    10        Syso.("running!")
    11     }
    12 });

    FSDataOutputStream对象

    该对象不允许在写入文件时定位,只能顺序写入,追加在文件末尾。

    FileStatus对象

    FIleSystem.getFileStatus()方法可以返回一个文件的信息和状态。包括文件长度,块大小,副本,修改时间,所有者及权限。

  • 相关阅读:
    base64 web前端js解码与转码
    react常见组件问题Can't perform a React state update on an unmounted component
    Git详细的多人开发心得
    数组中filter方法配合字符串方法trim使用
    Ant Design实现表格搜索、分页、多选处理
    Ant Design中日期选择器的disabledDate用法
    react学习资源汇总
    react开发项目到上线全过程详解
    MySQL-5.6.30-linux-glibc2.5-x86_64.tar.gz 安装教程
    linux下配置mysql主从复制配置
  • 原文地址:https://www.cnblogs.com/kinsomy/p/5572680.html
Copyright © 2011-2022 走看看