CN106354840A - 文件处理方法、装置及分布式文件系统 - Google Patents

文件处理方法、装置及分布式文件系统 Download PDF

Info

Publication number
CN106354840A
CN106354840A CN201610791705.9A CN201610791705A CN106354840A CN 106354840 A CN106354840 A CN 106354840A CN 201610791705 A CN201610791705 A CN 201610791705A CN 106354840 A CN106354840 A CN 106354840A
Authority
CN
China
Prior art keywords
data block
file
metadata information
client
offset address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610791705.9A
Other languages
English (en)
Other versions
CN106354840B (zh
Inventor
郭军
徐飞明
杨伟贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201610791705.9A priority Critical patent/CN106354840B/zh
Publication of CN106354840A publication Critical patent/CN106354840A/zh
Application granted granted Critical
Publication of CN106354840B publication Critical patent/CN106354840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开是关于一种文件处理方法、装置及分布式文件系统,属于互联网技术领域。所述方法包括:向数据节点发送数据块创建请求,并返回所述数据块的元数据信息;当接收到所述元数据信息时,分配数据块标识;向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。本公开通过在主节点中建立映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。

Description

文件处理方法、装置及分布式文件系统
技术领域
本公开是关于互联网技术领域,具体来说是关于一种文件处理方法、装置及分布式文件系统。
背景技术
随着互联网中数据量的成倍增长,采用硬盘存储文件的方式已不足以满足大量文件的存储需求,而分布式文件系统有效解决了这一存储难题,能够由位于不同地点的众多数据节点存储大量数据。
分布式文件系统包括主节点和多个数据节点,通常情况下,文件存储于数据节点上,而文件的元数据信息存储于主节点上,根据主节点存储的元数据信息可以确定文件在数据节点中的位置,进而根据确定的位置在数据节点中进行文件的读取或写入。
发明内容
为了解决相关技术中存在的问题,本公开提供了一种文件处理方法、装置及分布式文件系统。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种文件处理方法,所述方法包括:
向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
当接收到所述元数据信息时,分配数据块标识;
向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
在另一实施例中,所述方法还包括:
获取待读取的文件对应的数据块标识和偏移地址,所述数据块标识用于确定存储所述文件的数据块,所述偏移地址用于确定所述文件在所述数据块中的位置;
向所述主节点发送查询请求,所述查询请求携带所述数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件读取请求,所述文件读取请求携带所述元数据信息和所述偏移地址,所述数据节点用于根据所述元数据信息和所述偏移地址查找所述文件;
接收所述数据节点查找到的所述文件。
在另一实施例中,所述获取待读取的文件对应的数据块标识和偏移地址,包括:
获取所述文件的文件标识,所述文件标识由所述数据块标识和所述偏移地址按照预设规则组成;
根据所述预设规则,从所述文件标识中提取所述数据块标识和所述偏移地址。
在另一实施例中,所述方法还包括:
向所述主节点发送查询请求,所述查询请求携带数据块的数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件写入请求,所述文件写入请求携带所述元数据信息和待写入的文件,所述数据节点用于根据所述元数据信息,将所述文件写入所述数据块中,并返回所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的位置;
当接收到所述偏移地址时,按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
根据本公开实施例的第二方面,提供了一种文件处理方法,所述方法包括:
接收客户端发送的数据块标识和元数据信息;
建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
在另一实施例中,所述方法还包括:
接收所述客户端发送的查询请求,所述查询请求携带数据块标识;
根据存储的映射关系,查询所述数据块标识对应的元数据信息;
向所述客户端发送所述元数据信息。
根据本公开实施例的第三方面,提供了一种文件处理方法,所述方法包括:
接收客户端发送的数据块创建请求;
根据所述数据块创建请求,创建数据块;
向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
在另一实施例中,所述方法还包括:
接收所述客户端发送的文件读取请求,所述文件读取请求携带待读取的文件所在数据块的元数据信息和所述文件在所述数据块中的偏移地址;
根据所述元数据信息和所述偏移地址,查找所述文件;
向所述客户端发送所述文件。
在另一实施例中,所述方法还包括:
接收所述客户端发送的文件写入请求,所述文件写入请求携带待写入的文件和待写入所述文件的数据块的元数据信息;
根据所述元数据信息,将所述文件写入所述数据块中,并获取所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的偏移地址;
向所述客户端发送所述偏移地址,所述客户端用于按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
根据本公开实施例的第四方面,提供了一种文件处理装置,所述装置包括:
发送模块,用于向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
分配模块,用于当接收到所述元数据信息时,分配数据块标识;
所述发送模块,用于向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
在另一实施例中,所述装置还包括:
获取模块,用于获取待读取的文件对应的数据块标识和偏移地址,所述数据块标识用于确定存储所述文件的数据块,所述偏移地址用于确定所述文件在所述数据块中的位置;
所述发送模块,用于向所述主节点发送查询请求,所述查询请求携带所述数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
所述发送模块,用于当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件读取请求,所述文件读取请求携带所述元数据信息和所述偏移地址,所述数据节点用于根据所述元数据信息和所述偏移地址查找所述文件;
接收模块,用于接收所述数据节点查找到的所述文件。
在另一实施例中,所述获取模块用于获取所述文件的文件标识,所述文件标识由所述数据块标识和所述偏移地址按照预设规则组成;根据所述预设规则,从所述文件标识中提取所述数据块标识和所述偏移地址。
在另一实施例中,所述装置还包括:
所述发送模块,用于向所述主节点发送查询请求,所述查询请求携带数据块的数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
所述发送模块,用于当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件写入请求,所述文件写入请求携带所述元数据信息和待写入的文件,所述数据节点用于根据所述元数据信息,将所述文件写入所述数据块中,并返回所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的位置;
组成模块,用于当接收到所述偏移地址时,按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
根据本公开实施例的第五方面,提供了一种文件处理装置,所述装置包括:
接收模块,用于接收客户端发送的数据块标识和元数据信息;
建立模块,用于建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
在另一实施例中,所述装置还包括:
所述接收模块,用于接收所述客户端发送的查询请求,所述查询请求携带数据块标识;
查询模块,用于根据存储的映射关系,查询所述数据块标识对应的元数据信息;
发送模块,用于向所述客户端发送所述元数据信息。
根据本公开实施例的第六方面,提供了一种文件处理装置,所述装置包括:
接收模块,用于接收客户端发送的数据块创建请求;
创建模块,用于根据所述数据块创建请求,创建数据块;
发送模块,用于向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
在另一实施例中,所述装置还包括:
所述接收模块,用于接收所述客户端发送的文件读取请求,所述文件读取请求携带待读取的文件所在数据块的元数据信息和所述文件在所述数据块中的偏移地址;
查找模块,用于根据所述元数据信息和所述偏移地址,查找所述文件;
所述发送模块,用于向所述客户端发送所述文件。
在另一实施例中,所述装置还包括:
所述接收模块,用于接收所述客户端发送的文件写入请求,所述文件写入请求携带待写入的文件和待写入所述文件的数据块的元数据信息;
处理模块,用于根据所述元数据信息,将所述文件写入所述数据块中,并获取所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的偏移地址;
所述发送模块,用于向所述客户端发送所述偏移地址,所述客户端用于按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
根据本公开实施例的第七方面,提供了一种文件处理装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
当接收到所述元数据信息时,分配数据块标识;
向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
根据本公开实施例的第八方面,提供了一种文件处理装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的数据块标识和元数据信息;
建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
根据本公开实施例的第九方面,提供了一种文件处理装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的数据块创建请求;
根据所述数据块创建请求,创建数据块;
向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
根据本公开实施例的第十方面,提供了一种分布式文件系统,所述分布式系统包括所述分布式文件系统至少包括主节点和数据节点;
所述数据节点用于存储数据块,所述数据块用于存储文件;
所述主节点用于存储映射关系,所述映射关系包括每个数据块的数据块标识和元数据信息。
在另一实施例中,每个文件由文件头和文件数据组成,所述文件头包括对应文件的元数据信息。
本公开的实施例提供的技术方案可以包括以下有益效果:
本实施例提供的方法、装置和系统,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种分布式文件系统的结构示意图;
图2是根据一示例性实施例示出的一种文件处理方法的流程图;
图3是根据一示例性实施例示出的一种文件处理方法的流程图;
图4是根据一示例性实施例示出的一种文件处理方法的流程图;
图5是根据一示例性实施例示出的一种文件处理方法的流程图;
图6A是根据一示例性实施例示出的一种文件处理装置的框图;
图6B是根据一示例性实施例示出的一种文件处理装置的框图;
图7A是根据一示例性实施例示出的一种文件处理装置的框图;
图7B是根据一示例性实施例示出的一种文件处理装置的框图;
图8A是根据一示例性实施例示出的一种文件处理装置的框图;
图8B是根据一示例性实施例示出的一种文件处理装置的框图;
图9是根据一示例性实施例示出的一种文件处理装置的框图;
图10是根据一示例性实施例示出的一种文件处理装置的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种文件处理方法、装置及分布式文件系统,以下结合附图对本公开进行详细说明。
图1是根据一示例性实施例示出的一种分布式文件系统的结构示意图,如图1所示,该分布式文件系统至少包括主节点和数据节点。
该主节点用于为客户端提供文件访问服务,该数据节点用于存储数据块,数据块用于存储文件。
该主节点中存储有映射关系,该映射关系包括每个数据块的数据块标识和元数据信息。
当客户端要读取该数据节点中存储的文件或者要向数据节点写入文件时,先在该主节点中根据存储的映射关系查询数据块的元数据信息,从而获知该数据块在数据节点中的位置,并根据该数据块的元数据信息读取文件或写入文件。
在一种可能的实现方式中,该分布式文件系统包括多个数据节点,每个数据节点都可以存储文件,该客户端可以读取任一数据节点中的文件或者向任一数据节点写入文件。
在另一种可能实现方式中,每个文件由文件头和文件数据组成,文件头包括对应文件的元数据信息。
图2是根据一示例性实施例示出的一种文件处理方法的流程图,如图2所示,文件处理方法用于客户端中,该文件处理方法包括以下步骤:
在步骤201中,向数据节点发送数据块创建请求,该数据节点用于根据该数据块创建请求创建数据块,并返回该数据块的元数据信息,该数据块用于存储文件,该元数据信息至少用于确定该数据块在该数据节点中的位置。
在步骤202中,当接收到该元数据信息时,分配数据块标识。
在步骤203中,向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
相关技术中,主节点存储文件的元数据信息,根据元数据信息读取文件。但是,文件增多时,相应的元数据信息也会增多,会占用主节点更多的存储空间,因此数据节点可存储的文件量受限于主节点的存储空间容量。而本实施例中主节点不存储文件的元数据信息,而是存储数据块的元数据信息,能够根据主节点存储的数据块的元数据信息确定数据块的位置,进而根据数据块的位置对数据块中的文件进行读取或写入,还能够保证可存储的文件量就不会受限于主节点的存储量。
本实施例提供的方法,通过在主节点中存储数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
在一种可能的实现方式中,该方法还包括:
获取待读取的文件对应的数据块标识和偏移地址,该数据块标识用于确定存储该文件的数据块,该偏移地址用于确定该文件在该数据块中的位置;
向该主节点发送查询请求,该查询请求携带该数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
当接收到该主节点发送的元数据信息时,向该数据节点发送文件读取请求,该文件读取请求携带该元数据信息和该偏移地址,该数据节点用于根据该元数据信息和该偏移地址查找该文件;
接收该数据节点查找到的该文件。
在另一种可能的实现方式中,该获取待读取的文件对应的数据块标识和偏移地址,包括:
获取该文件的文件标识,该文件标识由该数据块标识和该偏移地址按照预设规则组成;
根据该预设规则,从该文件标识中提取该数据块标识和该偏移地址。
在另一种可能的实现方式中,该方法还包括:
向该主节点发送查询请求,该查询请求携带数据块的数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
当接收到该主节点发送的元数据信息时,向该数据节点发送文件写入请求,该文件写入请求携带该元数据信息和待写入的文件,该数据节点用于根据该元数据信息,将该文件写入该数据块中,并返回该文件的偏移地址,该偏移地址用于确定该文件在该数据块中的位置;
当接收到该偏移地址时,按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种文件处理方法的流程图,如图3所示,该文件处理方法用于图1所示的分布式文件系统的主节点中,该文件处理方法包括以下步骤:
在步骤301中,接收客户端发送的数据块标识和元数据信息。
在步骤302中,建立该数据块标识和该元数据信息之间的映射关系;
其中,该元数据信息用于确定该数据块在该数据节点中的位置,由该数据节点在创建该数据块时发送给该客户端,该数据块标识用于确定唯一对应的数据块,由该客户端为该数据块分配。
本实施例提供的方法,通过在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
在一种可能的实现方式中,该方法还包括:
接收该客户端发送的查询请求,该查询请求携带数据块标识;
根据存储的映射关系,查询该数据块标识对应的元数据信息;
向该客户端发送该元数据信息。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图4是根据一示例性实施例示出的一种文件处理方法的流程图,如图4所示,文件处理方法用于图1所示的分布式文件系统的数据节点中,该文件处理方法包括以下步骤:
在步骤401中,接收客户端发送的数据块创建请求。
在步骤402中,根据该数据块创建请求,创建数据块。
在步骤403中,向该客户端发送该数据块的元数据信息,该客户端用于接收到该元数据信息时,分配数据块标识,向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
本实施例提供的方法,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
在一种可能的实现方式中,该方法还包括:
接收该客户端发送的文件读取请求,该文件读取请求携带待读取的文件所在数据块的元数据信息和该文件在该数据块中的偏移地址;
根据该元数据信息和该偏移地址,查找该文件;
向该客户端发送该文件。
在一种可能的实现方式中,该方法还包括:
接收该客户端发送的文件写入请求,该文件写入请求携带待写入的文件和待写入该文件的数据块的元数据信息;
根据该元数据信息,将该文件写入该数据块中,并获取该文件的偏移地址,该偏移地址用于确定该文件在该数据块中的偏移地址;
向该客户端发送该偏移地址,该客户端用于按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图5是根据一示例性实施例示出的一种文件处理方法的流程图,如图5所示,本实施例的交互主体为客户端(Client)、数据节点(DataNode)和主节点(master),包括以下步骤:
在步骤501中,客户端向数据节点发送数据块创建请求(Create Block Request)。
本实施例应用于分布式文件系统中,该分布式文件系统中的数据节点可以在数据块(Block)中存储文件,客户端可以向数据节点写入文件,也可以从数据节点读取文件,本实施例对此不做限定。
为了摆脱主节点的存储空间容量对数据节点中文件量的限制,本实施例不在主节点中存储文件的元数据信息,而是在主节点中存储数据块的元数据信息,在数据块中存储文件,而在存储文件之前需要创建数据块。
当客户端要创建数据块时,可以向数据节点发送数据块创建请求,由数据节点创建数据块。
在一种可能的实现方式中,当客户端要在该数据节点中写入文件,但该数据节点中不存在可用数据块时,向该数据节点发送数据块创建请求。而当该客户端确定该数据节点中存在可用数据块时,直接向该数据节点写入文件,而无需创建数据块。或者,在另一种可能的实现方式中,每次要写入文件时均可向该数据节点发送数据块创建请求,请求该数据节点创建一个新的数据块来存储本次要写入的文件。本实施例对该客户端发送该数据块创建请求的时机不做限定。
其中,可用数据块是指还可以写入文件的数据块。为了便于确定可用数据块,该客户端可以维护一个可用数据块标识池,该可用数据块标识池中包括可用数据块的数据块标识(block_id),也即是,如果数据块的数据块标识在该可用数据块标识池中,表示该数据块为可用数据块,还可以写入文件,而如果数据块的数据块标识不在该可用数据块标识池中,表示该数据块不是可用数据块。其中,数据块标识用于唯一确定对应的数据块,可以为数据块的名称、序号等,本实施例对此不做限定。
那么,当该客户端要写入文件时,可以判断该可用数据块标识池中是否包括数据块标识,如果该可用数据块标识池中包括一个或多个数据块标识,表示还存在可用数据块,此时该客户端可以从该可用数据块标识池中选取一个数据块标识,将待写入的文件写入到该数据块标识对应的数据块中。如果该可用数据块标识池中不包括数据块标识,表示不存在可用数据块,则该客户端向该数据节点发送数据块创建请求。
为了保证可用数据块标识池中数据块标识的准确性,当该客户端确定某个数据块可用时,将该数据块的数据块标识添加至该可用数据块标识池中,而当该数据块正在写入文件或者该数据块不能再写入文件时,将该数据块的数据块标识从该可用数据块标识中删除。
其中,该客户端可以确定预设尺寸,当某一数据块当前的尺寸达到预设尺寸时,表示该数据块已经被占满,不能再写入文件,此时可以确定该数据块不可用,将该数据块的数据块标识从该可用数据块标识中删除。
在步骤502中,该数据节点接收该数据块创建请求,根据该数据块创建请求,创建数据块,向该客户端发送该数据块的元数据信息。
数据节点接收到客户端发送的数据块创建请求后,可以创建一个新的数据块,获取该数据块的元数据信息,发送给该客户端。
其中,该元数据信息至少包括该数据块的位置信息,可以用于确定该数据块在存储该数据块的数据节点中的位置。该元数据信息还可以包括该数据块的类型、当前尺寸、权限等,本实施例对此不做限定。
在一种可能的实现方式中,该数据节点创建数据块时,可以分配一个空闲的存储地址,作为该数据块的起始地址,该起始地址即为该数据块的位置信息,后续过程中可以按照该起始地址查找到该数据块。
在另一种可能的实现方式中,该分布式文件系统可以包括多个数据节点,则数据块的位置信息可以包括该数据块所在数据节点的数据节点标识以及该数据块在该数据节点中的起始地址,后续过程中可以按照该数据节点标识查找到该数据块所在的数据节点,再按照该起始地址在该数据节点中查找到该数据块。
其中,该数据节点标识用于唯一确定对应的数据节点,可以为该数据节点的名称、序号等,本实施例对此不做限定。
在步骤503中,该客户端接收到该元数据信息时,为该数据块分配数据块标识,并向主节点发送该数据块标识和该元数据信息。
该客户端为新创建的数据块分配一个唯一的数据块标识,以保证数据块标识与数据块一一对应,并将该数据块标识和该数据块的元数据信息一并发送给主节点,由主节点进行存储。
在步骤504中,该主节点接收该数据块的数据块标识和元数据信息,并建立该数据块标识和该元数据信息之间的映射关系。
主节点建立该数据块标识与该元数据信息之间的映射关系,并存储该映射关系。之后,根据该数据块标识可以查找到与之对应的元数据信息,根据该元数据信息可以查找到该数据块。
实际应用中,每当创建一个数据块时,该主节点存储该数据块的数据块标识及元数据信息,以便于后续根据任一数据块标识查询对应的元数据信息。
例如,该主节点存储的映射关系可以如下表1所示,该映射关系中包括三个数据块标识以及对应的元数据信息。
表1
数据块标识 元数据信息
0001 元数据信息A
0002 元数据信息B
0003 元数据信息C
需要说明的是,本实施例中可以将文件的元数据信息存储于数据块中。在一种可能实现方式中,文件的元数据信息可以位于文件中,与文件数据一同存储。每个文件由文件头(FileHeader)和文件数据(FileData)组成,文件头中包括文件的元数据信息。或者,每个文件由文件头、文件数据和文件尾(FileFooter)组成,文件头中包括文件的元数据信息,文件尾包括文件版本、文件类型等信息,本实施例对此不做限定。例如,文件的格式可以如下表2所示。
表2
FileHeader
FileData
FileFooter
在步骤505中,该客户端向该主节点发送查询请求,该查询请求携带待写入文件的数据块的数据块标识。
在步骤506中,该主节点接收到该查询请求时,根据存储的映射关系,查询该数据块标识对应的元数据信息,向该客户端发送该元数据信息。
该主节点已存储数据块标识与元数据信息之间的映射关系,可以供该客户端查询每个数据块的元数据信息。
当客户端要向数据节点写入文件时,确定待写入文件的数据块的数据块标识,向该主节点发送查询请求,该查询请求携带该数据块标识,该主节点接收到该查询请求时,即可根据存储的映射关系查询到该数据块标识对应的元数据信息。
在一种可能实现方式中,该客户端确定数据块标识时,可以从该可用数据块标识池中提取任一数据块标识,本实施例对此均不做限定。
基于上述表1的举例,当该主节点接收到携带数据块标识0002的查询请求时,根据存储的映射关系查询到对应的元数据信息B,返回给该客户端。
在步骤507中,当该客户端接收到该主节点发送的元数据信息时,向该数据节点发送文件写入请求(Write Data Request),该文件写入请求携带该元数据信息和待写入的文件。
其中,该文件由该客户端确定,可以包括音频文件、视频文件、文本文件等一个或多个文件,本实施例对此不做限定。
在步骤508中,该数据节点接收到该文件写入请求时,根据该元数据信息,将该文件写入该数据块中,并获取该文件的偏移地址(Block Offset),发送给该客户端。
一个数据块中可以存储一个或多个文件,则该数据节点将文件写入到数据块中后,可以根据该文件在该数据块中的位置获取该文件的偏移地址,发送给该客户端,该偏移地址用于指示该文件在该数据块中的位置,根据该偏移地址能够找到写入的文件。
例如,假设一个数据块的起始地址为0004,从0004至0008已经写入文件,则本次的文件从0009开始写入,该文件的偏移地址即为0005,表示该文件的起始地址与该数据块的起始地址之间相差0005。
在步骤509中,该客户端接收到该偏移地址时,按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识(file_id)。
该文件标识用于唯一确定该文件,且由该数据块标识和该偏移地址按照预设规则组成,那么,后续过程中获取到该文件标识即可确定该数据块标识和该偏移地址,从而根据该数据块标识和该偏移地址查找到该文件。
其中,该预设规则可以规定该数据块标识和该偏移地址的排列方式,根据规定的排列方式可以将该数据块标识和该偏移地址组成文件标识,后续也可以根据规定的排列方式从文件标识中提取该数据块标识和该偏移地址。
基于上述步骤504中表1的举例以及步骤508中的举例,假设该预设规则为该数据块标识在该偏移地址之前,该数据块标识占4位,该偏移地址占4位,则该数据块的数据块标识为0002,该偏移地址为0005时,该数据块标识和该偏移地址组成的该文件的文件标识为00020005。
在写入文件之后,该客户端可以读取该文件,该读取过程可以包括以下步骤:
在步骤510中,该客户端获取该文件对应的数据块标识和偏移地址,向该主节点发送查询请求,该查询请求携带该数据块标识。
在一个文件写入完成后,后续过程就可以对该文件进行读取。当该客户端要读取该文件时,可以获取该文件的文件标识,由于该文件标识是由该文件所在的数据块标识和该文件的偏移地址按照预设规则组成,因此,该客户端可以按照该预设规则从该文件标识中提取出该数据块标识和该偏移地址。
基于上述步骤509的举例,该文件标识为00020005,该客户端按照预设规则可以确定前4位的0002为数据块标识,后4位的0005为偏移地址。
在步骤511中,当该主节点接收到该查询请求时,根据该已存储的映射关系,查找该数据块标识对应的元数据信息,向该客户端发送该元数据信息。
该步骤511与上述步骤506类似,在此不再赘述。
在步骤512中,当该客户端接收到该主节点发送的元数据信息时,向该数据节点发送文件读取请求(Read Data Request)。
在步骤513中,当该数据节点接收到该文件读取请求时,根据该元数据信息和该偏移地址,查找该文件,向该客户端发送该文件。
在步骤514中,该客户端接收该数据节点发送的文件。
该客户端根据该元数据信息,在该数据节点中查找该数据块,并根据该偏移地址,在该数据块中查找该文件。之后即可读取该文件,发送给该客户端。
事实上,一个文件包括多项数据,而客户端一次只能读取特定尺寸的数据,当文件尺寸较大时,需要进行多次读取过程才能读取到完整的文件。那么,每次读取时,客户端可以获取文件对应的数据块的元数据信息、第一偏移地址(Block Offset)和第二偏移地址(Read Offset)。其中,该第一偏移地址用于确定该文件在数据块中的位置,该第二偏移地址用于确定本次待读取的文件数据在该文件中的位置,则本次要读取的文件数据的起始地址与该数据块的起始地址相差该第一偏移地址与该第二偏移地址之和。
当该数据节点接收到文件读取请求时,根据该元数据信息确定该文件所在的数据块,根据该第一偏移地址和第二偏移地址以及该特定尺寸确定本次要读取的文件数据,读取该文件数据后将该文件数据发送给客户端,客户端接收该数据节点返回的文件数据。之后,客户端将原来的第二偏移地址与该特定尺寸之和作为新的第二偏移地址,根据重新确定的第二偏移地址继续重复上述读取步骤,读取文件数据,以此类推,直至读取到整个文件的数据。
需要说明的是,为了减小数据块的数目以减小主节点的数据量,该分布式文件系统可以设置较大的Block Size。
其中,Block Size表示数据块的最大尺寸,在向任一数据块中写入文件的过程中,如果数据块当前的尺寸还未达到该Block Size,则可以继续写入文件,而一旦数据块当前的尺寸达到了该Block Size,将停止在该数据块中的写入过程,而将该文件剩余的数据写入到下一个数据块中。通过设置较大的Block Size可以在满足存储业务需求的情况下尽可能地减小数据块的数目,从而减小了数据块的元数据信息的数据量,节省了主节点的存储空间。
本实施例提供的方法,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。而且,通过设置较大的Block Size减小了数据块的元数据信息的数据量,节省了主节点的存储空间。
图6A是根据一示例性实施例示出的一种文件处理装置的框图。参见图6A,该装置包括发送模块601和分配模块602。
发送模块601被配置为用于向数据节点发送数据块创建请求,该数据节点用于根据该数据块创建请求创建数据块,并返回该数据块的元数据信息,该数据块用于存储文件,该元数据信息至少用于确定该数据块在该数据节点中的位置;
分配模块602被配置为用于当接收到该元数据信息时,分配数据块标识;
该发送模块601还被配置为用于向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
本实施例提供的装置,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
参见图6B,在另一实施例中,该装置还包括:
获取模块603,被配置为用于获取待读取的文件对应的数据块标识和偏移地址,该数据块标识用于确定存储该文件的数据块,该偏移地址用于确定该文件在该数据块中的位置;
该发送模块601,还被配置为用于向该主节点发送查询请求,该查询请求携带该数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
该发送模块601,还被配置为用于当接收到该主节点发送的元数据信息时,向该数据节点发送文件读取请求,该文件读取请求携带该元数据信息和该偏移地址,该数据节点用于根据该元数据信息和该偏移地址查找该文件;
接收模块604,被配置为用于接收该数据节点查找到的该文件。
在另一实施例中,该获取模块603还被配置为用于获取该文件的文件标识,该文件标识由该数据块标识和该偏移地址按照预设规则组成;根据该预设规则,从该文件标识中提取该数据块标识和该偏移地址。
参见图6B,在另一实施例中,该装置还包括:
该发送模块601,还被配置为用于向该主节点发送查询请求,该查询请求携带数据块的数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
该发送模块601,还被配置为用于当接收到该主节点发送的元数据信息时,向该数据节点发送文件写入请求,该文件写入请求携带该元数据信息和待写入的文件,该数据节点用于根据该元数据信息,将该文件写入该数据块中,并返回该文件的偏移地址,该偏移地址用于确定该文件在该数据块中的位置;
组成模块605,被配置为用于当接收到该偏移地址时,按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图7A是根据一示例性实施例示出的一种文件处理装置的框图。参见图7A,该装置包括接收模块701和建立模块702。
接收模块701被配置为用于接收客户端发送的数据块标识和元数据信息;
建立模块702被配置为用于建立该数据块标识和该元数据信息之间的映射关系;
其中,该元数据信息用于确定该数据块在该数据节点中的位置,由该数据节点在创建该数据块时发送给该客户端,该数据块标识用于确定唯一对应的数据块,由该客户端为该数据块分配。
本实施例提供的装置,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
参见图7B,在另一实施例中,该装置还包括:
该接收模块701,还被配置为用于接收该客户端发送的查询请求,该查询请求携带数据块标识;
查询模块703,被配置为用于根据存储的映射关系,查询该数据块标识对应的元数据信息;
发送模块704,被配置为用于向该客户端发送该元数据信息。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图8A是根据一示例性实施例示出的一种文件处理装置的框图。参见图8A,该装置包括接收模块801、创建模块802和发送模块803。
接收模块801被配置为用于接收客户端发送的数据块创建请求;
创建模块802被配置为用于根据该数据块创建请求,创建数据块;
发送模块803被配置为用于向该客户端发送该数据块的元数据信息,该客户端用于接收到该元数据信息时,分配数据块标识,向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
本实施例提供的装置,通过在创建数据块时,向客户端发送数据块的元数据信息,由客户端分配数据块标识,并在主节点中建立数据块的数据块标识与元数据信息之间的映射关系,在客户端读取或者写入文件时根据该映射关系能够获取数据块的元数据信息,以确定数据块的位置,进而根据数据块的位置进行文件读取或者写入,无需存储文件的元数据信息,可存储的文件量不会受限于主节点的存储容量,提高了扩展性。
参见图8B,在另一实施例中,该装置还包括:
该接收模块801,还被配置为用于接收该客户端发送的文件读取请求,该文件读取请求携带待读取的文件所在数据块的元数据信息和该文件在该数据块中的偏移地址;
查找模块804,被配置为用于根据该元数据信息和该偏移地址,查找该文件;
该发送模块803,还被配置为用于向该客户端发送该文件。
参见图8B,在另一实施例中,该装置还包括:
该接收模块801,还被配置为用于接收该客户端发送的文件写入请求,该文件写入请求携带待写入的文件和待写入该文件的数据块的元数据信息;
处理模块805,被配置为用于根据该元数据信息,将该文件写入该数据块中,并获取该文件的偏移地址,该偏移地址用于确定该文件在该数据块中的偏移地址;
该发送模块803,还被配置为用于向该客户端发送该偏移地址,该客户端用于按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的文件处理装置在处理文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将文件处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件处理方法、装置及分布式文件系统实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是根据一示例性实施例示出的一种文件处理装置900的框图。例如,装置900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,装置900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制装置900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在装置900的操作。这些数据的示例包括用于在装置900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为装置900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为装置900生成、管理和分配电力相关联的组件。
多媒体组件908包括在该装置900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。该触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与该触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当装置900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为装置900提供各个方面的状态评估。例如,传感器组件914可以检测到装置900的打开/关闭状态,组件的相对定位,例如该组件为装置900的显示器和小键盘,传感器组件914还可以检测装置900或装置900一个组件的位置改变,用户与装置900接触的存在或不存在,装置900方位或加速/减速和装置900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于装置900和其他设备之间有线或无线方式的通信。装置900可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,该通信组件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置900的处理器920执行以完成上述方法。例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当该存储介质中的指令由客户端的处理器执行时,使得客户端能够执行一种文件处理方法,该方法包括:
向数据节点发送数据块创建请求,该数据节点用于根据该数据块创建请求创建数据块,并返回该数据块的元数据信息,该数据块用于存储文件,该元数据信息至少用于确定该数据块在该数据节点中的位置;
当接收到该元数据信息时,分配数据块标识;
向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
在另一实施例中,该方法还包括:
获取待读取的文件对应的数据块标识和偏移地址,该数据块标识用于确定存储该文件的数据块,该偏移地址用于确定该文件在该数据块中的位置;
向该主节点发送查询请求,该查询请求携带该数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
当接收到该主节点发送的元数据信息时,向该数据节点发送文件读取请求,该文件读取请求携带该元数据信息和该偏移地址,该数据节点用于根据该元数据信息和该偏移地址查找该文件;
接收该数据节点查找到的该文件。
在另一实施例中,该获取待读取的文件对应的数据块标识和偏移地址,包括:
获取该文件的文件标识,该文件标识由该数据块标识和该偏移地址按照预设规则组成;
根据该预设规则,从该文件标识中提取该数据块标识和该偏移地址。
在另一实施例中,该方法还包括:
向该主节点发送查询请求,该查询请求携带数据块的数据块标识,该主节点用于根据存储的映射关系查询该数据块标识对应的元数据信息;
当接收到该主节点发送的元数据信息时,向该数据节点发送文件写入请求,该文件写入请求携带该元数据信息和待写入的文件,该数据节点用于根据该元数据信息,将该文件写入该数据块中,并返回该文件的偏移地址,该偏移地址用于确定该文件在该数据块中的位置;
当接收到该偏移地址时,按照预设规则,将该数据块标识和该偏移地址组成该文件的文件标识。
在另一实施例中,该方法包括:
向数据节点发送数据块创建请求,该数据节点用于根据该数据块创建请求创建数据块,并返回该数据块的元数据信息,该数据块用于存储文件,该元数据信息至少用于确定该数据块在该数据节点中的位置;
当接收到该元数据信息时,分配数据块标识;
向该主节点发送该数据块标识和该元数据信息,该主节点用于建立该数据块标识和该元数据信息之间的映射关系。
图10是根据一示例性实施例示出的一种文件处理装置1000的框图。例如,装置1000可以被提供为一服务器。参照图10,装置1000包括处理组件1022,其进一步包括一个或多个处理器,以及由存储器1032所代表的存储器资源,用于存储可由处理组件1022的执行的指令,例如应用程序。存储器1032中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1022被配置为执行指令,以执行上述文件处理方法。
装置1000还可以包括一个电源组件1026被配置为执行装置1000的电源管理,一个有线或无线网络接口1050被配置为将装置1000连接到网络,和一个输入输出(I/O)接口1058。装置1000可以操作基于存储在存储器1032的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
图10所示的服务器可以用于执行上述实施例中主节点、客户端或者数据节点执行的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (23)

1.一种文件处理方法,其特征在于,应用于客户端中,所述方法包括:
向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
当接收到所述元数据信息时,分配数据块标识;
向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待读取的文件对应的数据块标识和偏移地址,所述数据块标识用于确定存储所述文件的数据块,所述偏移地址用于确定所述文件在所述数据块中的位置;
向所述主节点发送查询请求,所述查询请求携带所述数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件读取请求,所述文件读取请求携带所述元数据信息和所述偏移地址,所述数据节点用于根据所述元数据信息和所述偏移地址查找所述文件;
接收所述数据节点查找到的所述文件。
3.根据权利要求2所述的方法,其特征在于,所述获取待读取的文件对应的数据块标识和偏移地址,包括:
获取所述文件的文件标识,所述文件标识由所述数据块标识和所述偏移地址按照预设规则组成;
根据所述预设规则,从所述文件标识中提取所述数据块标识和所述偏移地址。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述主节点发送查询请求,所述查询请求携带数据块的数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件写入请求,所述文件写入请求携带所述元数据信息和待写入的文件,所述数据节点用于根据所述元数据信息,将所述文件写入所述数据块中,并返回所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的位置;
当接收到所述偏移地址时,按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
5.一种文件处理方法,其特征在于,应用于分布式文件系统的主节点中,所述分布式文件系统至少包括所述主节点和数据节点,所述数据节点用于存储数据块,所述数据块用于存储文件,所述方法包括:
接收客户端发送的数据块标识和元数据信息;
建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的查询请求,所述查询请求携带数据块标识;
根据存储的映射关系,查询所述数据块标识对应的元数据信息;
向所述客户端发送所述元数据信息。
7.一种文件处理方法,其特征在于,应用于分布式文件系统的数据节点中,所述分布式文件系统至少包括所述主节点和数据节点,所述数据节点用于存储数据块,所述数据块用于存储文件,所述方法包括:
接收客户端发送的数据块创建请求;
根据所述数据块创建请求,创建数据块;
向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的文件读取请求,所述文件读取请求携带待读取的文件所在数据块的元数据信息和所述文件在所述数据块中的偏移地址;
根据所述元数据信息和所述偏移地址,查找所述文件;
向所述客户端发送所述文件。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的文件写入请求,所述文件写入请求携带待写入的文件和待写入所述文件的数据块的元数据信息;
根据所述元数据信息,将所述文件写入所述数据块中,并获取所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的偏移地址;
向所述客户端发送所述偏移地址,所述客户端用于按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
10.一种文件处理装置,其特征在于,应用于客户端中,所述装置包括:
发送模块,用于向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
分配模块,用于当接收到所述元数据信息时,分配数据块标识;
所述发送模块,用于向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取待读取的文件对应的数据块标识和偏移地址,所述数据块标识用于确定存储所述文件的数据块,所述偏移地址用于确定所述文件在所述数据块中的位置;
所述发送模块,用于向所述主节点发送查询请求,所述查询请求携带所述数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
所述发送模块,用于当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件读取请求,所述文件读取请求携带所述元数据信息和所述偏移地址,所述数据节点用于根据所述元数据信息和所述偏移地址查找所述文件;
接收模块,用于接收所述数据节点查找到的所述文件。
12.根据权利要求11所述的装置,其特征在于,所述获取模块用于获取所述文件的文件标识,所述文件标识由所述数据块标识和所述偏移地址按照预设规则组成;根据所述预设规则,从所述文件标识中提取所述数据块标识和所述偏移地址。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
所述发送模块,用于向所述主节点发送查询请求,所述查询请求携带数据块的数据块标识,所述主节点用于根据存储的映射关系查询所述数据块标识对应的元数据信息;
所述发送模块,用于当接收到所述主节点发送的元数据信息时,向所述数据节点发送文件写入请求,所述文件写入请求携带所述元数据信息和待写入的文件,所述数据节点用于根据所述元数据信息,将所述文件写入所述数据块中,并返回所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的位置;
组成模块,用于当接收到所述偏移地址时,按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
14.一种文件处理装置,其特征在于,应用于分布式文件系统的主节点中,所述分布式文件系统至少包括所述主节点和数据节点,所述数据节点用于存储数据块,所述数据块用于存储文件,所述装置包括:
接收模块,用于接收客户端发送的数据块标识和元数据信息;
建立模块,用于建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
所述接收模块,用于接收所述客户端发送的查询请求,所述查询请求携带数据块标识;
查询模块,用于根据存储的映射关系,查询所述数据块标识对应的元数据信息;
发送模块,用于向所述客户端发送所述元数据信息。
16.一种文件处理装置,其特征在于,应用于分布式文件系统的数据节点中,所述分布式文件系统至少包括所述主节点和数据节点,所述数据节点用于存储数据块,所述数据块用于存储文件,所述装置包括:
接收模块,用于接收客户端发送的数据块创建请求;
创建模块,用于根据所述数据块创建请求,创建数据块;
发送模块,用于向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
所述接收模块,用于接收所述客户端发送的文件读取请求,所述文件读取请求携带待读取的文件所在数据块的元数据信息和所述文件在所述数据块中的偏移地址;
查找模块,用于根据所述元数据信息和所述偏移地址,查找所述文件;
所述发送模块,用于向所述客户端发送所述文件。
18.根据权利要求16所述的装置,其特征在于,所述装置还包括:
所述接收模块,用于接收所述客户端发送的文件写入请求,所述文件写入请求携带待写入的文件和待写入所述文件的数据块的元数据信息;
处理模块,用于根据所述元数据信息,将所述文件写入所述数据块中,并获取所述文件的偏移地址,所述偏移地址用于确定所述文件在所述数据块中的偏移地址;
所述发送模块,用于向所述客户端发送所述偏移地址,所述客户端用于按照预设规则,将所述数据块标识和所述偏移地址组成所述文件的文件标识。
19.一种文件处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向数据节点发送数据块创建请求,所述数据节点用于根据所述数据块创建请求创建数据块,并返回所述数据块的元数据信息,所述数据块用于存储文件,所述元数据信息至少用于确定所述数据块在所述数据节点中的位置;
当接收到所述元数据信息时,分配数据块标识;
向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
20.一种文件处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的数据块标识和元数据信息;
建立所述数据块标识和所述元数据信息之间的映射关系;
其中,所述元数据信息用于确定所述数据块在所述数据节点中的位置,由所述数据节点在创建所述数据块时发送给所述客户端,所述数据块标识用于确定唯一对应的数据块,由所述客户端为所述数据块分配。
21.一种文件处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的数据块创建请求;
根据所述数据块创建请求,创建数据块;
向所述客户端发送所述数据块的元数据信息,所述客户端用于接收到所述元数据信息时,分配数据块标识,向所述主节点发送所述数据块标识和所述元数据信息,所述主节点用于建立所述数据块标识和所述元数据信息之间的映射关系。
22.一种分布式文件系统,其特征在于,所述分布式文件系统至少包括主节点和数据节点;
所述数据节点用于存储数据块,所述数据块用于存储文件;
所述主节点用于存储映射关系,所述映射关系包括每个数据块的数据块标识和元数据信息。
23.根据权利要求22所述的系统,其特征在于,每个文件由文件头和文件数据组成,所述文件头包括对应文件的元数据信息。
CN201610791705.9A 2016-08-31 2016-08-31 文件处理方法、装置及分布式文件系统 Active CN106354840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610791705.9A CN106354840B (zh) 2016-08-31 2016-08-31 文件处理方法、装置及分布式文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610791705.9A CN106354840B (zh) 2016-08-31 2016-08-31 文件处理方法、装置及分布式文件系统

Publications (2)

Publication Number Publication Date
CN106354840A true CN106354840A (zh) 2017-01-25
CN106354840B CN106354840B (zh) 2020-01-07

Family

ID=57858244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610791705.9A Active CN106354840B (zh) 2016-08-31 2016-08-31 文件处理方法、装置及分布式文件系统

Country Status (1)

Country Link
CN (1) CN106354840B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508143A (zh) * 2018-08-17 2019-03-22 郑州云海信息技术有限公司 一种数据存储方法及装置
CN109542860A (zh) * 2018-10-25 2019-03-29 平安科技(深圳)有限公司 基于hdfs的业务数据管理方法、终端设备
CN109739435A (zh) * 2018-12-03 2019-05-10 中科恒运股份有限公司 文件存储和更新方法及装置
CN110196860A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 唯一标识分配方法及装置、电子设备、存储介质
CN110602026A (zh) * 2018-06-13 2019-12-20 阿里巴巴集团控股有限公司 文件访问方法、控制节点、客户端和电子设备
CN110708375A (zh) * 2019-09-30 2020-01-17 恩亿科(北京)数据科技有限公司 一种数据处理方法、装置及系统
CN110968557A (zh) * 2018-09-30 2020-04-07 阿里巴巴集团控股有限公司 分布式文件系统中的数据处理方法、装置及电子设备
CN111241088A (zh) * 2018-11-09 2020-06-05 北京京东尚科信息技术有限公司 数据写入方法、数据查询方法、装置及设备
CN111984460A (zh) * 2019-05-21 2020-11-24 华为技术有限公司 元数据的恢复方法及装置
CN113312316A (zh) * 2021-07-28 2021-08-27 阿里云计算有限公司 数据处理方法及装置
CN114327283A (zh) * 2021-12-30 2022-04-12 西北工业大学 分布式存储系统内的数据迁移方法及分布式存储系统
CN114528258A (zh) * 2022-02-18 2022-05-24 北京百度网讯科技有限公司 文件异步处理方法、装置、服务器、介质、产品及系统
WO2023024656A1 (zh) * 2021-08-23 2023-03-02 华为技术有限公司 数据访问方法、存储系统及存储节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731516A (zh) * 2013-12-18 2015-06-24 腾讯科技(深圳)有限公司 一种存取文件的方法、装置及分布式存储系统
CN105740295A (zh) * 2014-12-12 2016-07-06 中国移动通信集团公司 一种分布式数据的处理方法及装置
CN105808622A (zh) * 2014-12-31 2016-07-27 乐视网信息技术(北京)股份有限公司 一种文件存储的方法和装置
US20160224580A1 (en) * 2015-02-04 2016-08-04 International Business Machines Corporation Filesystem with isolated independent filesets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731516A (zh) * 2013-12-18 2015-06-24 腾讯科技(深圳)有限公司 一种存取文件的方法、装置及分布式存储系统
CN105740295A (zh) * 2014-12-12 2016-07-06 中国移动通信集团公司 一种分布式数据的处理方法及装置
CN105808622A (zh) * 2014-12-31 2016-07-27 乐视网信息技术(北京)股份有限公司 一种文件存储的方法和装置
US20160224580A1 (en) * 2015-02-04 2016-08-04 International Business Machines Corporation Filesystem with isolated independent filesets

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196860B (zh) * 2018-04-12 2024-03-05 腾讯科技(深圳)有限公司 唯一标识分配方法及装置、电子设备、存储介质
CN110196860A (zh) * 2018-04-12 2019-09-03 腾讯科技(深圳)有限公司 唯一标识分配方法及装置、电子设备、存储介质
CN110602026B (zh) * 2018-06-13 2021-12-14 阿里巴巴集团控股有限公司 文件访问方法、控制节点、客户端和电子设备
CN110602026A (zh) * 2018-06-13 2019-12-20 阿里巴巴集团控股有限公司 文件访问方法、控制节点、客户端和电子设备
CN109508143A (zh) * 2018-08-17 2019-03-22 郑州云海信息技术有限公司 一种数据存储方法及装置
CN109508143B (zh) * 2018-08-17 2022-04-22 郑州云海信息技术有限公司 一种数据存储方法及装置
CN110968557A (zh) * 2018-09-30 2020-04-07 阿里巴巴集团控股有限公司 分布式文件系统中的数据处理方法、装置及电子设备
CN110968557B (zh) * 2018-09-30 2023-05-05 阿里巴巴集团控股有限公司 分布式文件系统中的数据处理方法、装置及电子设备
CN109542860A (zh) * 2018-10-25 2019-03-29 平安科技(深圳)有限公司 基于hdfs的业务数据管理方法、终端设备
CN109542860B (zh) * 2018-10-25 2023-07-07 平安科技(深圳)有限公司 基于hdfs的业务数据管理方法、终端设备
CN111241088A (zh) * 2018-11-09 2020-06-05 北京京东尚科信息技术有限公司 数据写入方法、数据查询方法、装置及设备
CN109739435A (zh) * 2018-12-03 2019-05-10 中科恒运股份有限公司 文件存储和更新方法及装置
CN109739435B (zh) * 2018-12-03 2023-10-13 中科恒运股份有限公司 文件存储和更新方法及装置
CN111984460A (zh) * 2019-05-21 2020-11-24 华为技术有限公司 元数据的恢复方法及装置
CN111984460B (zh) * 2019-05-21 2023-11-24 华为云计算技术有限公司 元数据的恢复方法及装置
CN110708375A (zh) * 2019-09-30 2020-01-17 恩亿科(北京)数据科技有限公司 一种数据处理方法、装置及系统
CN113312316B (zh) * 2021-07-28 2022-01-04 阿里云计算有限公司 数据处理方法及装置
CN113312316A (zh) * 2021-07-28 2021-08-27 阿里云计算有限公司 数据处理方法及装置
WO2023024656A1 (zh) * 2021-08-23 2023-03-02 华为技术有限公司 数据访问方法、存储系统及存储节点
CN114327283A (zh) * 2021-12-30 2022-04-12 西北工业大学 分布式存储系统内的数据迁移方法及分布式存储系统
CN114327283B (zh) * 2021-12-30 2024-03-12 西北工业大学 分布式存储系统内的数据迁移方法及分布式存储系统
CN114528258B (zh) * 2022-02-18 2022-12-27 北京百度网讯科技有限公司 文件异步处理方法、装置、服务器、介质、产品及系统
CN114528258A (zh) * 2022-02-18 2022-05-24 北京百度网讯科技有限公司 文件异步处理方法、装置、服务器、介质、产品及系统

Also Published As

Publication number Publication date
CN106354840B (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
CN106354840A (zh) 文件处理方法、装置及分布式文件系统
US9276883B2 (en) Information collection, storage, and sharing platform
CN100492356C (zh) 用于管理媒体项的方法、系统和设备
CN104834665A (zh) 目标图片获取方法及装置
CN106254467A (zh) 文件分享方法及装置
CN105159958B (zh) 一种基于移动终端的图片信息处理的方法及系统
CN104820675A (zh) 相册显示方法及装置
CN104506664A (zh) 域名系统缓存的方法和装置
US9674271B2 (en) Platform for sharing collected information with third-party applications
CN104636453A (zh) 非法用户资料识别方法及装置
CN104462296A (zh) 文件的管理方法、装置及终端
CN105808667A (zh) 获取图像的方法、装置及系统
CN104462570A (zh) 网页内容获取方法及装置
CN104158854B (zh) 资源共享方法及装置
CN106096011A (zh) 照片分享方法及装置
CN104506624A (zh) 一种社交信息管理系统及管理方法
CN106649784A (zh) 图片存储方法、图片查找方法、装置及终端
CN104268151A (zh) 联系人分组方法及装置
CN104038407A (zh) 管理即时消息的方法和装置
CN109033393A (zh) 贴纸处理方法、装置、存储介质及电子设备
CN107766488A (zh) 一种信息查询方法、终端、计算机可读存储介质
CN105630958A (zh) 书籍管理方法及装置
CN105681455A (zh) 获取图像的方法、装置及系统
CN104462276B (zh) 一种用于桌面微件的音频播放方法及装置
CN111290751B (zh) 特效生成方法、装置、系统、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant