基于分布式文件系统的文件读取、写入方法及节点服务器技术方案

技术编号:14814225 阅读:106 留言:0更新日期:2017-03-15 04:31
本发明专利技术公开了一种基于分布式文件系统的文件读取、写入方法及节点服务器,其中所述方法包括:数据节点服务器接收客户端发送的数据访问请求,所述数据访问请求包括需要读取的目标数据块的信息;获得与所述目标数据块的信息匹配的目标数据块,所述目标数据块包括标识信息以及第一数据信息,所述标识信息包括校验属性信息;将所述校验属性信息以及所述第一数据信息发送至所述客户端。本发明专利技术可以减少磁盘的I/O次数,有效地提高数据读取的效率,提升HDFS随机读取的性能。

【技术实现步骤摘要】

本专利技术涉及一种文件处理的
,具体涉及一种基于分布式文件系统的文件读取方法、一种基于分布式文件系统的文件写入方法、以及一种节点服务器。
技术介绍
随着信息技术的快速发展,海量的信息需要被可靠存储的同时,还要满足被大量的使用者快速访问的需求。传统的存储方案已经从构架上越来越难以适应近几年来的业务的飞速发展,成为了业务发展的瓶颈和障碍,此时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;子步骤S12,依据所述目标数据块的块内偏移量startOffset计算起始位置;子步骤S13,从所述起始位置开始,在所述存储介质中依次读取每个分片数据chunk以及与所述分片数据chunk对应的校验和数据checksum到所述第一数据包packet中,直到填满所述第一数据包packet;子步骤S14,将所述第一数据包packet发送至客户端中;子步骤S15,重复上述子步骤S11至子步骤S14,直到发送至客户端的数据的大小等于所述目标数据块的长度。可选地,所述校验和数据checksum在所述存储介质中的位置位于对应的分片数据chunk的存储位置之后,位于所述对应的分片数据chunk的下一个分片数据chunk的存储位置之前。可选地,在所述获得与所述目标数据块的信息匹配的目标数据块的步骤之前,还包括:依据所述数据访问请求建立与所述客户端的socket连接。根据本专利技术的另一方面,提供了一种基于分布式文件系统的文件写入方法,所述方法包括:数据节点服务器接收客户端发送的第二数据包packet,所述第二数据包packet中包括目标数据块ID、校验属性信息以及第二数据信息;依据所述目标数据块ID定位对应的目标数据块;在所述目标数据块ID中添加所述校验属性信息,生成所述目标数据块的标识信息;将所述第二数据信息写入所述目标数据块中。可选地,所述第二数据信息包括多个分片数据chunk,以及分别与所述多个分片数据chunk对应的校验和数据checksum,所述将所述第二数据信息写入所述目标数据块中的步骤为:将所述分片数据chunk以及与所述分片数据chunk对应的校验和数据checksum写入所述目标数据块ID对应的目标数据块中,其中,所述分片数据chunk以及与所述分片数据chunk对应的校验和数据checksum存储在磁盘的同一存储介质中。可选地,所述校验属性信息包括校验和版本Inlinechecksumversion,校验和类型checksumtype,以及每个校验和字节数bytesPerChecksum。可选地,在所述将所述第二数据信息写入所述目标数据块中的步骤之后,还包括:当前数据节点服务器将所述第二数据包packet传递至预先生成的节点队列中的下一数据节点服务器中。本文档来自技高网
...

【技术保护点】
一种基于分布式文件系统的文件读取方法,所述方法包括:数据节点服务器接收客户端发送的数据访问请求,所述数据访问请求包括需要读取的目标数据块的信息;获得与所述目标数据块的信息匹配的目标数据块,所述目标数据块包括标识信息以及第一数据信息,所述标识信息包括校验属性信息;将所述校验属性信息以及所述第一数据信息发送至所述客户端。

【技术特征摘要】
1.一种基于分布式文件系统的文件读取方法,所述方法包括:
数据节点服务器接收客户端发送的数据访问请求,所述数据访问请
求包括需要读取的目标数据块的信息;
获得与所述目标数据块的信息匹配的目标数据块,所述目标数据块
包括标识信息以及第一数据信息,所述标识信息包括校验属性信息;
将所述校验属性信息以及所述第一数据信息发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述第一数据信息包
括分片数据chunk以及对应的校验和数据checksum,其中,所述分片数
据chunk以及所述校验和数据checksum存储在磁盘的同一个存储介质中。
3.根据权利要求2所述的方法,其特征在于,将所述校验属性信息
以及所述第一数据信息发送至所述客户端的步骤包括:
从所述目标数据块的标识信息中读取所述校验属性信息发送至所述
客户端;
从所述存储介质中读取预设大小的分片数据chunk以及对应的校验
和数据checksum发送至所述客户端。
4.根据权利要求1或2或3所述的方法,其特征在于,所述校验属
性信息包括校验和版本Inlinechecksumversion,校验和类型checksumtype,
以及每个校验和字节数bytesPerChecksum。
5.根据权利要求3所述的方法,其特征在于,所述目标数据块的信
息包括目标数据块的块内偏移量startOffset以及目标数据块的长度,所述
预设大小为第一数据包packet的大小,所述从所述存储介质中读取预设
大小的分片数据chunk以及对应的校验和数据checksum发送至所述客户
端的步骤包括:
子步骤S11,创建第一数据包packet;
子步骤S12,依据所述目标数据块的块内偏移量startOffset计算起始
位置;
子步骤S13,从所述起始位置开始,在所述存储介质中依次读取每个
分片数据chunk以及与所述分片数据chunk对应的校验和数据checksum

\t到所述第一数据包packet中,直到填满所述第一数据包packet;
子步骤S14,将所述第一数据包packet发送至客户端中;
子步骤S15,重复上述子步骤S11至子步骤S14,直到发送至客户端
的数据的大小等于所...

【专利技术属性】
技术研发人员:郭东东
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1