[发明专利]基于分布式文件系统的文件读取、写入方法及节点服务器在审
| 申请号: | 201410602747.4 | 申请日: | 2014-10-31 |
| 公开(公告)号: | CN105630808A | 公开(公告)日: | 2016-06-01 |
| 发明(设计)人: | 郭东东 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06;H04L29/08 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 赵娟 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 分布式 文件系统 文件 读取 写入 方法 节点 服务器 | ||
技术领域
本发明涉及一种文件处理的技术领域,具体涉及一种基于分布式文件 系统的文件读取方法、一种基于分布式文件系统的文件写入方法、以及 一种节点服务器。
背景技术
随着信息技术的快速发展,海量的信息需要被可靠存储的同时,还 要满足被大量的使用者快速访问的需求。传统的存储方案已经从构架上 越来越难以适应近几年来的业务的飞速发展,成为了业务发展的瓶颈和 障碍,此时HDFS(HadoopDistributedFileSystem,Hadoop分布式文件 系统)应运而生。
HDFS是通过一个高效的分布式算法,将数据的访问和存储分布在大 量服务器之中,在可靠地多备份存储的同时还能将访问分布在集群中的 各个服务器之上,是传统存储构架的一个颠覆性的发展。
HDFS对数据存储的最小单位为块(block),HDFS会将其存储的大文件打 散成很多block。HDFS在进行block读写的时候是以packet为单位进行的,每 一个packet由若干个chunk(chunk是进行数据校验的基本单位)组成,对每一 个chunk生成一个校验和(checksum)并将校验和进行存储(在默认情况下一 个chunk的大小是512byte,生成的校验和是4byte)。参考图1所示的block存 储方式,每个block分为数据块文件(block文件)以及其对应的数据块验证文 件(meta文件),读取block文件中的数据时,首先从meta文件的checksumheader 中确定校验算法等信息,继而读取block文件对应的内容,最后读取meta文件 中的校验和信息。
从上述流程中可以看出,一次block文件的读取过程,涉及到3次磁盘I/O (输入输出)。在随机读取过程中,若每次磁盘操作需要约10ms,3次就是30ms, 性能非常低下。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部 分地解决上述问题的一种基于分布式文件系统的文件读取方法、一种基 于分布式文件系统的文件写入方法和相应的一种节点服务器。
依据本发明的一个方面,提供了一种基于分布式文件系统的文件读取 方法,所述方法包括:
数据节点服务器接收客户端发送的数据访问请求,所述数据访问请 求包括需要读取的目标数据块的信息;
获得与所述目标数据块的信息匹配的目标数据块,所述目标数据块 包括标识信息以及第一数据信息,所述标识信息包括校验属性信息;
将所述校验属性信息以及所述第一数据信息发送至所述客户端。
可选地,所述第一数据信息包括分片数据chunk以及对应的校验和数 据checksum,其中,所述分片数据chunk以及所述校验和数据checksum 存储在磁盘的同一个存储介质中。
可选地,将所述校验属性信息以及所述第一数据信息发送至所述客 户端的步骤包括:
从所述目标数据块的标识信息中读取所述校验属性信息发送至所述 客户端;
从所述存储介质中读取预设大小的分片数据chunk以及对应的校验 和数据checksum发送至所述客户端。
可选地,所述目标数据块的信息包括目标数据块ID,目标数据块的 时间戳GenerationStamp,所述获得与所述目标数据块的信息匹配的目标 数据块的步骤包括:
依据所述目标数据块ID以及所述目标数据块的时间戳 GenerationStamp,遍历磁盘中存储的数据块,所述数据块包括数据块ID 以及数据块时间戳;
查找所述数据块ID与所述目标数据块ID相同,以及所述数据块时 间戳与所述目标数据块的时间戳GenerationStamp相同的数据块作为目标 数据块。
可选地,所述校验属性信息包括校验和版本Inlinechecksumversion, 校验和类型checksumtype,以及每个校验和字节数bytesPerChecksum。
可选地,所述目标数据块的信息包括目标数据块的块内偏移量 startOffset以及目标数据块的长度,所述预设大小为第一数据包packet的 大小,所述从所述存储介质中读取预设大小的分片数据chunk以及对应的 校验和数据checksum发送至所述客户端的步骤包括:
子步骤S11,创建第一数据包packet;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410602747.4/2.html,转载请声明来源钻瓜专利网。





