阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.2.0中DFSInputStream类的read方法浅析

228次阅读
没有评论

共计 1090 个字符,预计需要花费 3 分钟才能阅读完成。

DFSInputStream 类共有三个 read 方法:

public synchronized int read(final ByteBuffer buf)

public synchronized int read(final byte buf[], int off, int len)

public int read(long position, byte[] buffer, int offset, int length)

最有吸引人的方法是第三个,支持部分读取 HDFS 文件,这是由于此类的父类实现了 Seekable, PositionedReadable 接口。

这里对第三个方法的参数加以解释:

position:针对指定 hdfs 文件的位置,开始从 position 读起;

offset:针对 buffer 而言,内容从 offset 开始填起,就是说 buffer 中的前(offset-1)的空间会空出来(不伤害之前填写的内容);

length:本次读取的长度(byte 单位),确保 offset+length <= buffer.size;

这里纠正一个习惯看法,之前一直说 block 是 Hadoop 的基本管理单元,很容易容易 hadoop 每次会把一整个块的数据读入内存。跟踪源码发现,hadoop 读入块信息,再根据具体的偏移信息读入相关的部分数据,而不是每次都机械的读入整个块。

相关阅读:

将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm

从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm

将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm

HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm

Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm

《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm

Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计1090字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中