CN104679772B - 分布式数据仓库中删除文件的方法、装置、设备及系统 - Google Patents
分布式数据仓库中删除文件的方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN104679772B CN104679772B CN201310628849.9A CN201310628849A CN104679772B CN 104679772 B CN104679772 B CN 104679772B CN 201310628849 A CN201310628849 A CN 201310628849A CN 104679772 B CN104679772 B CN 104679772B
- Authority
- CN
- China
- Prior art keywords
- data block
- back end
- file
- heartbeat
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据仓库中删除文件的方法、装置、设备及系统,属于数据仓库管理领域。所述方法包括:向管理节点发送心跳上报;接收管理节点发送的携带有数据块标识的删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。本发明通过在接收管理节点发送的携带有数据块标识的删除指令,将数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
Description
技术领域
本发明涉及数据仓库管理领域,特别涉及一种分布式数据仓库中删除文件的方法、装置、设备及系统。
背景技术
Hadoop是一种分布式系统基础架构,能够充分利用集群高速运算和存储,Hadoop实现了一个分布式系统(HDFS,Hadoop Distributed File System)。该HDFS的架构中可以包含一个管理节点NameNode和多个数据节点DataNode,存储在HDFS中的文件会被分成多个数据块,这些数据块被分布存储至不同的DataNode中。
现有的Hadoop为了防止用户对文件误删除时引发的文件丢失,在NameNode中设置了回收站(Trash)的功能,当用户删除某一文件时,NameNode将该文件的目录修改至回收站目录下,此时DataNode并没有在物理上删除该文件,但由于该文件的目录被修改至回收站目录下,NameNode不会向用户反馈该文件的元数据以及块映射关系,因此用户也是无法查看到该文件的;如果用户发现该删除为误操作,想要恢复该文件,NameNode会将该文件名从回收站目录下移动至原目录下,完成对该文件的恢复,这样,当客户端需要查看该文件时,客户端根据NameNode反馈的该文件的元数据以及相关的块映射关系,就能到相关的DataNode中读取该文件所对应的数据块。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:在NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,比如,当用户对该回收站进行了清理操作时,NameNode会确定出回收站中的文件所包含的存储在DataNode中的数据块,NameNode会向DataNode下发用于删除这些数据块的删除指令,DataNode则根据删除指令删除这些数据块;还比如,在集群启动前,如果NameNode中的元数据被误删除或损坏,此时启动NameNode时,NameNode的内存中不包含元数据,当DataNode启动之后,DataNode向Namenode上报数据块信息,由于NameNode中并不存在这些数据块信息,因此NameNode会向DataNode下发对这些数据块进行删除的删除指令,DataNode则删除这些数据块。由于DataNode在接收到删除指令之后会直接删除了相关数据块,因此即便用户在短时间内发现出现误删除,也无法对这些删除的数据块进行恢复,降低了Hadoop系统的数据安全性。
发明内容
为了解决现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题,本发明实施例提供了一种分布式数据仓库中删除文件的方法、装置及电子设备。所述技术方案如下:
第一方面,提供了一种分布式数据仓库中删除文件的方法,所述方法包括:
数据节点向管理节点发送心跳上报,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识,所述心跳上报用于使得所述管理节点根据所述心跳上报确定所述数据块标识到所述数据节点的映射;
接收心跳返回,从接收到的心跳返回中获取所述管理节点发送的携带有数据块标识的删除指令;
将所述数据块标识存入至延迟队列中并记录存入的时间;
在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的所述数据节点中的数据块。
第二方面,提供了一种分布式数据仓库中删除文件的方法,所述方法包括:
管理节点接收客户端发送的用于指示删除指定文件的文件删除指令;
接收数据节点发送的心跳上报,根据所述心跳上报确定所述数据块标识到所述数据节点的映射,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识;
对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据所述心跳上报确定的所述数据块标识到所述数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;
在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
第三方面,提供了一种分布式数据仓库中删除文件的方法,所述方法包括:
客户端向管理节点发送用于指示删除指定文件的文件删除指令,以便所述管理节点在接收到所述文件删除指令之后,对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据数据节点发送的心跳上报确定的数据块标识到数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
第四方面,提供了一种分布式数据仓库中删除文件的装置,应用于数据节点中,所述装置包括:
心跳发送模块,用于向管理节点发送心跳上报,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识,所述心跳上报用于使得所述管理节点根据所述心跳上报确定所述数据块标识到所述数据节点的映射;
获取模块,用于接收心跳返回,从心跳返回中获取所述管理节点发送的携带有数据块标识的删除指令;
存入模块,用于将所述数据块标识存入至延迟队列中并记录存入的时间;
删除模块,用于在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的所述数据节点中的数据块。
第五方面,提供了一种分布式数据仓库中删除文件的装置,应用于管理节点中,所述装置包括:
第三接收模块,用于接收客户端发送的用于指示删除指定文件的文件删除指令;
第四接收模块,用于接收数据节点发送的心跳上报,根据所述心跳上报确定所述数据块标识到所述数据节点的映射,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识;
第二确定模块,用于对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据所述心跳上报确定的所述数据块标识到所述数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;
第二发送模块,用于在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
第六方面,提供了一种分布式数据仓库中删除文件的装置,应用于客户端中,所述装置包括:
第三发送模块,用于向管理节点发送用于指示删除指定文件的文件删除指令,以便所述管理节点在接收到所述文件删除指令之后,对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据数据节点发送的心跳上报确定的数据块标识到数据节点之间的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
第七方面,提供了一种数据节点,所述数据节点包括如第四方面所述的分布式数据仓库中删除文件的装置。
第八方面,提供了一种管理节点,所述管理节点包括第五方面所述的分布式数据仓库中删除文件的装置。
第九方面,提供了一种客户端,所述客户端包括第六方面所述的分布式数据仓库中删除文件的装置。
第十方面,提供了一种分布式数据仓库中删除文件的系统,所述系统包括客户端、管理节点和至少一个数据节点;
所述客户端包括第六方面所述的分布式数据仓库中删除文件的装置;
所述管理节点包括第五方面所述的分布式数据仓库中删除文件的装置;
所述数据节点包括第四方面所述的分布式数据仓库中删除文件的装置。
本发明实施例提供的技术方案带来的有益效果是:
通过在数据节点中接收管理节点发送的携带有数据块标识的删除指令,将所述数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明部分实施例中提供的分布式数据仓库中删除文件的方法所涉及的实施环境的示意图;
图2是本发明一个实施例中提供的分布式数据仓库中删除文件的方法的流程图;
图3是本发明另一个实施例中提供的分布式数据仓库中删除文件的方法的流程图;
图4A是本发明再一个实施例中提供的分布式数据仓库中删除文件的方法的流程图;
图4B是本发明部分实施例中提供的分布式数据仓库中删除文件的方法的示意图;
图5是本发明还一个实施例中提供的分布式数据仓库中删除文件的方法的流程图;
图6是本发明一个实施例中提供的分布式数据仓库中删除文件的系统的结构示意图;
图7是本发明另一个实施例中提供的分布式数据仓库中删除文件的系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参见图1所示,其示出了本发明部分实施例中提供的分布式数据仓库中删除文件的方法所涉及的实施环境的示意图。该实施环境即为一个Hadoop集群,该Hadoop集群可以包括客户端102、管理节点104和至少一个数据节点106。
客户端102可以向管理节点104或数据节点106下发保存、删除、恢复文件等相关指令。
管理节点104即为Hadoop集群中的NameNode,该NameNode用来管理文件系统的命名空间,将文件系统中的所有文件和文件夹的元数据保存在一个文件系统树中,这些元数据也会在硬盘上保存成命名空间镜像文件FSImage和编辑日志文件EditLog,同时,NameNode通过块映射BlocksMAP记录每个文件中各个数据块所在的DataNode的信息,块映射是NameNode根据DataNode定期上报的数据块的信息生成的从数据块到DataNode的映射。其中的元数据是指维护文件系统中所有文件和目录时所需要的信息,比如文件和目录自身的属性信息(例如文件名、目录名、父目录信息、文件大小、创建时间、修改时间等)、文件内容存储的相关信息(例如文件分块情况、副本个数、每个副本所在的DataNode信息等)以及用来记录HDFS中所有DataNode的信息。
数据节点106即为Hadoop集群中的DataNode,DataNode根据客户端或NameNode的调度存储并检索数据块,定期向NameNode上报所存储的数据块的信息以及这些数据块所占用的存储空间,这个上报过程即为数据节点106的心跳上报。
这样,当客户端102可以根据管理节点104中的指定文件的元数据以及数据块与数据节点106之间的映射关系读取数据节点106中该指定文件的数据块,实现对指定文件的读取工作。
请参见图2所示,其使出了本发明一个实施例中提供的分布式数据仓库中删除文件的方法的流程图,本实施例主要以该分布式数据仓库中删除文件的方法应用于图1中所示的实施环境中的数据节点106进行举例说明。该分布式数据仓库中删除文件的方法可以包括:
201,向管理节点发送心跳上报,心跳上报包括数据节点存储的所有数据块的数据块标识;
数据节点向管理节点发送心跳上报,这里的心跳上报用于使得管理节点根据心跳上报确定数据块标识到数据节点的映射。
202,接收心跳返回,从接收到的心跳返回中获取接收管理节点发送的携带有数据块标识的删除指令;
数据节点接收心跳返回,从接收到的心跳返回中获取管理节点发送的携带有数据块标识的删除指令。
在实际应用中,管理节点在进行心跳返回时可以携带管理节点下发的该删除指令,很显然,管理节点还可以单独向数据节点下发删除指令。
由于数据节点中通常包含有很多数据块,而这些数据块可能属于不同的文件,因此当需要删除一个文件时,该删除指令中需携带有存储在数据节点中的该文件中的数据块的数据块标识,这样,该数据节点在接收到该删除指令之后,则可以得知需要删除存储的哪些数据块。
203,将数据块标识存入至延迟队列中并记录存入的时间;
数据节点将数据块标识存入至延迟队列中。
该延迟队列是在数据节点的内存中建立一个用于保存需要删除的数据块的数据块标识。
很显然,在延迟队列还可以为设置在数据节点的磁盘或其他存储设备中一个队列。
同时,每存入至延迟队列中一个数据块标识,则记录该数据块标识被存入的时间。
204,在指定条件下删除延迟队列中存储的数据块标识所对应的该数据节点中的数据块。
这里可以将延迟队列中存储的数据块标识所对应的数据块称之为延迟删除数据块。
数据节点在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。也就是说,只有当符合指定条件时,数据节点才去删除延迟队列中存储的数据块标识所对应的数据块,可知,数据节点并不是在接收到删除指令时立即删除该删除这里种携带的数据块标识所对应的数据块,而是将这些数据块延迟删除。
在本实施例中的第一种可能的实现方式中,
在指定条件下删除延迟队列中存储的数据块标识所对应的数据节点中的数据块,包括:
在数据块标识存入至延迟队列的存入时间达到预定时间阈值时,删除数据块标识所对应的数据节点中的数据块;
或,
在接收到客户端下发的用于指示清空延迟队列中所有数据块标识所对应的数据块的清空指令时,删除延迟队列中所有数据块标识所对应的数据节点中的数据块。
在本实施例中的第二种可能的实现方式中,
在将数据块标识存入至延迟队列中并记录存入的时间之后,还包括:
接收管理节点发送的用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令;
向管理节点发送携带有数据节点存储的所有数据块的数据块标识的心跳上报,以便管理节点根据接收到的心跳上报中的数据块标识构建数据块标识到数据节点的映射。
在本实施例中的第三种可能的实现方式中,
在在接收到客户端下发的用于指示清空延迟队列中所有数据块标识所对应的数据块的清空指令时,删除延迟队列中所有数据块标识所对应的数据节点中的数据块之前,还包括:
确定延迟队列中所有数据块标识所对应的数据节点中的数据块;
计算数据节点中的数据块在数据节点中的占用参数;
将占用参数发送给管理节点,以便管理节点接收占用参数,客户端在查看到占用参数之后确定是否需要向数据节点下发用于指示清空数据节点中延迟队列中所有数据块标识所对应的数据块的清空指令。
在本实施例中的第四种可能的实现方式中,占用参数包括延迟删除存储空间和延迟删除百分比,计算数据节点中的数据块在数据节点中的占用参数,包括:
计算数据块所占用的数据节点的存储空间,将存储空间确定为延迟删除存储空间;
计算延迟删除存储空间占用数据节点的总存储空间的百分比,将百分比确定为延迟删除百分比。
在本实施例中的第五种可能的实现方式中,
该分布式数据仓库中删除文件的方法还包括:
接收客户端发送的携带有指定时长的时间配置指令,时间配置指令用于对预定时间阈值进行动态配置;
根据时间配置指令将预定时间阈值更新为指定时长。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的方法,通过在数据节点中接收管理节点发送的携带有数据块标识的删除指令,将数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
请参见图3所示,其示出了本发明另一个实施例中提供的分布式数据仓库中删除文件的方法的流程图,本实施例主要以该分布式数据仓库中删除文件的方法应用于图1中所示的实施环境中的管理节点104进行举例说明。该分布式数据仓库中删除文件的方法可以包括:
301,接收客户端发送的用于指示删除指定文件的文件删除指令;
管理节点接收客户端发送的用于指示删除指定文件的文件删除指令。
302,接收数据节点发送的心跳上报,根据心跳上报确定数据块标识到数据节点的映射,心跳上报包括数据节点存储的所有数据块的数据块标识;
管理节点接收数据节点发送的心跳上报,根据心跳上报确定数据块标识到数据节点的映射,心跳上报包括数据节点存储的所有数据块的数据块标识。
通常来讲,数据节点会定期的向管理节点发送心跳上报,对应的,管理节点会向该数据节点发送心跳返回。心跳上报中通常可以包含数据节点存储的所有数据块的数据块标识以及这些数据块所占的存储空间等信息。
303,对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据心跳上报确定的数据块标识到数据节点的映射,确定出存储在数据节点中属于指定文件的数据块;
对于每一个数据节点,管理节点根据预存的文件与数据块标识之间的对应关系以及根据心跳上报确定的数据块标识到数据节点的映射,确定出存储在数据节点中属于指定文件的数据块。
在实际应用中,管理节点中通常包含有Hadoop系统中保存的文件的元数据,该元数据可以用于描述文件的权限信息、文件的目录、文件所对应的数据块等数据信息,比如,管理节点的元数据中可以包含用于记录文件以及文件中所包含的数据块的数据块标识的数据信息,也就是说,管理节点中保存有文件以及文件中所包含的数据块的数据块标识的对应关系。同时管理节点中还包含有映射关系BlocksMap,该映射关系中包含有每个数据块到与保存有该数据块的数据节点之间的对应关系,也即数据块到数据节点的映射。该映射关系是根据数据节点在心跳上报时的上报信息来确定的,通常,该上报信息可以包含该数据节点所存储的数据块的数据块标识以及这些数据块所占用的存储空间等信息,这样管理节点则可以将上报信息中的数据块标识与该数据节点进行映射。
这样可以根据管理节点中预存的文件和数据块标识之间的对应关系以及预存的数据块标识与数据节点之间的对应关系,则可以确定出存储在数据节点中属于指定文件的数据块。举例来讲,指定文件和数据块标识之间的对应关系为<指定文件,数据块1,数据块2,数据块4>,也即指定文件中包含有数据块1、数据块2和数据块4,如果某一个数据节点通过心跳上报的上报信息包括数据块2、数据块3和数据块4的数据块标识,管理节点则可以确定出该数据节点中存储该指定文件的数据块为数据块2和数据块4。
304,向数据节点发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点接收删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
管理节点向数据节点发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点接收删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
通常来讲,数据节点会定期的向管理节点发送心跳上报,对应的,管理节点会向该数据节点发送心跳返回。
管理节点在向数据节点发送的心跳返回中添加携带有数据块的数据块标识的删除指令,这样管理节点可以根据该心跳返回确定删除指令。举例来讲,当管理节点经过步骤303确定出的某一个数据节点中存储有指定文件的至少一个数据块时,则向该数据节点发送的删除指令中包含有这些数据块的数据块标识,以便该数据节点在接收到该删除指令之后,可以将这些数据块标识存入至延迟队列中,即暂时保留这些需要删除的数据块,而在指定条件下才去删除延迟队列中存储的数据块标识所对应的数据块。
在实际应用中,管理节点可以通过数据节点的心跳返回动作将该删除指令通知给数据节点。很显然,管理节点还可以单独向数据节点发送该删除指令。
举例来讲,当一个需要删除的指定文件包含多个数据块时,且这些数据块被分布保存在多个数据节点中,此时管理节点则分别确定出每个数据节点保存有该指定文件的哪些数据块,并分别向这些数据节点发送不同的删除指令,每个删除指令中包含有存储在数据节点中的该指定文件的数据块的数据块标识。这样,每个存储有该指定文件的数据块的数据节点均可以接收到一个与该数据节点对应的删除指令。
在本实施例中的第一种可能的实现方式中,
该分布式数据仓库中删除文件的方法还包括:
接收客户端发送的用于指示恢复指定文件的文件恢复指令;
恢复符合条件的第一对应关系,该符合条件的第一对应关系为在发送删除指令之前备份的且备份的时间与发送删除指令的时间距离最近的第一对应关系,第一对应关系包含指定文件和指定文件包含的数据块的数据块标识;;
恢复第二对应关系,该第二对应关系包括数据块的数据块标识和存储数据块的数据节点。
在本实施例中的第二种可能的实现方式中,
恢复第一对应关系,包括:
获取该符合条件的第一对应关系;
将该第一对应关系读入管理节点的内存。
在本实施例中的第三种可能的实现方式中,
恢复第二对应关系,包括:
向数据节点发送用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令,以便数据节点接收到恢复指令之后,向管理节点发送携带有存储的所有数据块的数据块标识的心跳上报;
接收数据节点发送的心跳上报;
根据接收到的心跳上报中的数据块标识构建数据块标识到数据节点的映射。
在本实施例中的第四种可能的实现方式中,
该分布式数据仓库中删除文件的方法还包括:
接收数据节点发送的占用参数,占用参数包括延迟删除存储空间和延迟删除百分比,延迟删除存储空间为数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,延迟删除百分比为延迟删除存储空间占用数据节点的总存储空间的百分比,以便客户端在查看到占用参数之后确定是否向数据节点下发用于指示清空数据节点中延迟队列中所有数据块标识所对应的数据块的清空指令。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的方法,通过向数据节点发送携带有数据块标识的删除指令,以便数据节点将数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
在实际应用中,客户端可以向管理节点下发删除指令,以删除某一个或某些指定文件,当客户端发现该删除指令所对应的操作为误操作时,则可以在较短时间内再次向管理节点下发恢复指令,以恢复这些误删除的指定文件。具体的删除和恢复过程,可以参见图4A所示。
请参见图4A所示,其示出了本发明再一个实施例中提供的分布式数据仓库中删除文件的方法的流程图。本实施例主要以该分布式数据仓库中删除文件的方法应用于图1中所示的实施环境中进行举例说明。该分布式数据仓库中删除文件的方法可以包括:
401,客户端向管理节点发送用于指示删除指定文件的文件删除指令;
在实际应用中,该文件删除指令可以包括一个指定文件、两个指定文件或多个指定文件。
402,管理节点接收该文件删除指令;
403,数据节点向管理节点发送心跳上报;
该心跳上报包括数据节点存储的所有数据块的数据块标识。
404,管理节点接收该心跳上报,根据心跳上报确定数据块标识到数据节点的映射;
405,对于每一个数据节点,管理节点根据预存的文件与数据块标识之间的对应关系以及数据块标识到数据节点的映射,确定出存储在数据节点中属于指定文件的数据块;
在实际应用中,管理节点中通常包含有Hadoop系统中保存的文件的元数据,元数据可以为用于描述文件的权限信息、文件的目录、文件所对应的数据块等数据信息,比如,管理节点的元数据中可以包含用与记录文件以及文件中所包含的数据块的数据块标识的数据信息,也就是说,管理节点中保存有文件以及文件中所包含的数据块的数据块标识的对应关系。同时管理节点中还包含有映射关系BlocksMap,该映射关系中包含有每个数据块到与保存有该数据块的数据节点之间的对应关系,也即数据块到数据节点的映射。该映射关系是根据数据节点发送的心跳上报来确定的,通常,该心跳上报可以包含该数据节点所存储的数据块的数据块标识以及这些数据块所占用的存储空间等信息,这样管理节点则可以将心跳上报中的数据块标识与该数据节点进行映射。
管理节点根据管理节点中预存的文件和数据块标识之间的对应关系以及预存的数据块标识与数据节点之间的对应关系,则可以确定出存储在数据节点中属于指定文件的数据块。举例来讲,当指定文件为1个时,指定文件和数据块标识之间的对应关系为<指定文件,数据块1,数据块2,数据块4>,也即指定文件中包含有数据块1、数据块2和数据块4,如果某一个数据节点通过心跳上报的心跳上报包括数据块2、数据块3和数据块4的数据块标识,则管理节点则可以确定出该数据节点中存储该指定文件的数据块为数据块2和数据块4。再举例来讲,当指定文件为2个时,指定文件1和数据块标识之间的对应关系<指定文件1、数据块1,数据块2,数据块4>,指定文件2和数据块标识之间的对应关系<指定文件2、数据块3,数据块5,数据块6>,如果某一个数据节点发送的心跳上报包括数据块2、数据块3、数据块6和数据块8,则管理节点可以确定出该数据节点中存储这两个指定文件的数据块2、数据块3、数据块6。
406,管理节点在向数据节点发送心跳返回中添加携带有数据块的数据块标识的删除指令;
管理节点向数据节点发送携带有数据块的数据块标识的删除指令。举例来讲,当管理节点经过步骤403确定出的某一个数据节点中存储有指定文件的至少一个数据块时,则向该数据节点保守的删除指令中包含有这些数据块的数据块标识。
在实际应用中,管理节点可以通过数据节点的心跳返回动作将该删除指令通知给数据节点。很显然,管理节点还可以单独向数据节点发送该删除指令。
一般的,当一个需要删除的指定文件包含多个数据块时,且这些数据块被分布保存在多个数据节点中,此时管理节点则分别确定出每个数据节点保存有该指定文件的哪些数据块,并分别向这些数据节点发送不同的删除指令,每个删除指令中包含有存储在数据节点中的该指定文件的数据块的数据块标识。这样,每个存储有该指定文件的数据块的数据节点均可以接收到一个与该数据节点对应的删除指令,并根据预定条件删除对应的数据块。
407,数据节点接收该心跳返回,从接收到的心跳返回中获取管理节点发送的携带有数据块标识的删除指令;
数据节点接收到的心跳返回中包含有删除指令,该删除指令中包含有数据块标识,数据节点在接收到该删除指令之后,则可以确定这些数据块标识所对应的数据块是客户端要求被删除的文件中的数据块。
408,数据节点将数据块标识存入至延迟队列中;
数据节点在接收到该删除指令之后,可以将这些数据块标识存入至延迟队列中,即暂时保留这些需要删除的数据块,而在指定条件下才去删除延迟队列中存储的数据块标识所对应的数据块。
在一种情况下,在数据块标识存入至延迟队列的存入时间达到预定时间阈值时,删除数据块标识所对应的数据块,也即可以在将数据块标识存入至延迟队列时,记录时间戳,当该时间戳大于预定时间阈值时,则删除该数据块标识所对应的数据块。在实际应用中,客户端可以向数据节点下发携带有指定时长的时间配置指令,时间配置指令用于对预定时间阈值进行动态配置,数据节点接收客户端发送的携带有指定时长的时间配置指令,时间配置指令用于对预定时间阈值进行动态配置;数据节点根据时间配置指令将预定时间阈值更新为指定时长。
在另一种情况下,数据节点在接收到客户端下发的用于指示清空延迟队列中所有数据块标识所对应的数据块的清空指令时,删除延迟队列中所有数据块标识所对应的数据块。在实际应用中,数据节点确定延迟队列中所有数据块标识所对应的数据块;计算数据块所占用的存储空间,将存储空间确定为延迟删除存储空间;数据节点计算延迟删除存储空间占用数据节点的总存储空间的百分比,将百分比确定为延迟删除百分比;数据节点将延迟删除存储空间和延迟删除百分比发送给管理节点,以便管理节点接收延迟删除存储空间和延迟删除百分比,客户端在查看到延迟删除存储空间和延迟删除百分比之后确定是否需要向数据节点下发用于指示清空数据节点中延迟队列中所有数据块标识所对应的数据块的清空指令;若确定出需要向数据节点下发清空指令,则向数据节点下发清空指令。此时,数据节点在接收到该清空指令之后,则可以删除延迟队列中所有数据块标识所对应数据块,也即删除所有延迟删除数据块。
409,客户端向管理节点发送用于指示恢复指定文件的文件恢复指令;
当客户端发现下发的文件删除指令是错误的指令,即该文件删除指令所对应的操作为误操作时,客户端向管理节点发送用于指示恢复该指定文件的文件恢复指令。
410,管理节点接收该文件恢复指令;
管理节点在接收到该文件恢复指令之后,则恢复符合条件的第一对应关系和第二对应关系,其中第一对应关系包括指定文件和指定文件包含的数据块的数据块标识;第二对应关系包括数据块标识到数据节点的映射。恢复第一对应关系可以参见如下步骤411至步骤412中的描述,恢复第二对应关系可以参见如下步骤413至步骤417中的描述。
411,管理节点获取符合条件的第一对应关系;
管理节点在接收到客户端发送的文件恢复指令之后,则获取符合条件的第一对应关系。
符合条件的第一对应关系为在发送删除指令之前备份的且备份的时间与发送删除指令的时间距离最近的第一对应关系,第一对应关系包含指定文件和指定文件包含的数据块的数据块标识。
在实际应用中,管理节点可以每隔预定时间间隔对管理节点中的元数据进行备份,也即每次备份的元数据均包保存,其中该元数据中则包含文件和文件包含的数据块的数据块标识。很显然,当管理节点在接收到客户端发送的用于指示恢复指定文件的文件恢复指令之后,则可以获取符合条件的备份元数据,该符合条件的备份元数据可以为在发送删除指令之前备份的且备份的时间与发送删除指令的时间距离最近的备份的元数据,该备份的元数据中即包括上述的指定文件和该指定文件包含的数据块的数据块标识的对应关系。
412,管理节点将该第一对应关系读入管理节点的内存;
在实际应用中,管理节点会在重启之后将备份的元数据读入至管理节点的内存中,同时,由于该第一对应关系是保存在该符合条件的备份元数据中的,因此管理节点会将该备份的元数据中的第一对应关系读入管理节点的内存中。
很显然,在一种可能的实现方式中,只要管理节点在接收到客户端发送的文件恢复指令且获取到符合条件的第一对应关系,即可将该第一对应关系读入至内存,不一定必须通过重新启动管理节点的方式来实现。
413,管理节点向数据节点发送用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令;
由于客户端想要读取Hadoop中的一个文件时,需要从管理节点中获取该文件的所有数据块标识以及这些数据块标识与数据节点的映射关系,这样才可以到存储有该文件的数据块的数据节点中读取该文件的数据块。因此管理节点在将第一对应关系读入管理节点的内存之后,还需要建立该指定文件中数据块标识与数据节点之间的映射。此时,该管理节点需要向数据节点发送用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令。
414,数据节点接收到该恢复指令;
415,数据节点向管理节点发送携带有存储的所有数据块的数据块标识的心跳上报;
当数据节点在接收到管理节点发送的恢复指令之后,则可以通过心跳向管理节点发送携带有存储的所有数据块的数据块标识的心跳上报。由于延迟队列中的数据块标识所对应的数据块可能还没有被物理删除,因此该心跳上报中也同时包含有这些延迟删除的数据块的数据块标识。
在实际应用中,数据节点在接收到管理节点下发的恢复指令之后,则可以重新启动,由于延迟队列通常在数据节点的内存中,当数据节点重新启动时,则该延迟队列则丢失,也即重启后的数据节点的内存中不再包含有该延迟队列,因此也就不会对该延迟队列中包含的数据块标识所对应的数据块进行删除。
416,管理节点接收数据节点发送的心跳上报;
417,管理节点根据接收到的心跳上报中的数据块标识构建数据块标识到数据节点的映射。
当管理节点中的内存中读入了指定文件和该指定文件所包含的数据块标识(即恢复了第一对应关系),且建立了这些数据块标识与数据节点之间的映射关系,因此如果客户端需要读取该指定文件(即恢复了第二对应关系)时,管理节点则会向客户端反馈该指定文件所对应的数据块标识与数据节点之间的映射关系,客户端则可以根据这些映射关系到对应的数据节点上读取与指定文件相关的数据块,即完成对该指定文件的读取操作。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的方法,通过在数据节点中接收管理节点发送的携带有数据块标识的删除指令,将所述数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
在一种可能的实现方式中,请参见图4B所示,其示出了本发明部分实施例中提供的分布式数据仓库中删除文件的方法的示意图。该分布式数据仓库中删除文件的方法可以包括:41,客户端向管理节点发送用于指示删除指定文件的删除指令;42,管理节点查询并删除该指定文件对应的元数据以及该指定文件中数据块与数据节点之间的映射关系;43,管理节点将该指定文件包含的数据块的数据块标识添加到失效队列中;这里所讲的失效队列可以为recentinvalidateSets;44,管理节点接收数据节点发送的心跳上报,该心跳上报中包含有该数据节点中存储的所有数据块所对应的数据块标识;45,管理节点将失效队列中属于该数据节点的数据块标识标记为失效;该失效标记可以为Invalid;46,管理节点向数据节点发送包含有标记为失效的且属于心跳上报中的数据块标识的删除指令;47,数据节点接收该删除指令;48,数据节点将待删除数据块的数据块标识加入延迟队列中;49,当数据块标识添加至延迟队列的时间大于预定时间阈值时,数据节点物理删除该数据块标识所对应的数据块。
在实际应用中,数据节点还可以将延迟删除的数据块所占的存储空间上报给管理节点,这样客户端可以查询每个数据节点上存储的延迟删除的数据块所占的存储空间以及所占数据节点存储空间的百分比,客户端根据这些信息可以确定清空哪些数据节点中延迟删除的数据块。具体参见图5中的描述。
请参见图5所示,其示出了本发明还一个实施例中提供的分布式数据仓库中删除文件的方法的流程图,本实施例主要以该分布式数据仓库中删除文件的方法应用于图1所示的实施环境中进行举例说明,该分布式数据仓库中删除文件的方法可以包括:
501,数据节点确定延迟队列中所有数据块标识所对应的数据块;
502,数据节点计算数据块所占用的存储空间,将存储空间确定为延迟删除存储空间;
503,数据节点计算延迟删除存储空间占用数据节点的总存储空间的百分比,将百分比确定为延迟删除百分比;
504,数据节点将延迟删除存储空间和延迟删除百分比发送给管理节点;
505,管理节点接收数据节点发送的延迟删除存储空间和延迟删除百分比;
506,客户端查看每一个数据节点发送给管理节点的延迟删除存储空间和延迟删除百分比;
客户端可以查询Hadoop系统中每个数据节点中延迟删除数据块的存储空间(即延迟删除存储空间)和百分比(延迟删除百分比),并可以细化到各数据节点的存储情况。举例来讲,请参见如下表1,该表1中为一个数据节点中的数据存储情况。
表1
这里的数据节点中增加了Delay Deleting和Delay Deleting%,分别代表延迟删除存储空间及延迟删除百分比。其中,DFS Used代表数据节点中真实的物理存储空间,包含延迟删除数据块的存储空间,因此系统有效存储空间为:DFSUsed-Delay Deleting。
客户端还可以通过Report命令查看Hadoop系统各数据节点中的数据存储情况,同样增加Delay Deleting和Delay Deleting%,分别表示延迟删除存储空间及延迟删除百分比。
举例来讲,通过Report命令查看Hadoop系统各数据节点中的数据存储情况时的格式为:hadoop dfs admin report,内容如下:
“Datanodes available:3(3total,0dead)
Name:10.136.138.225:50010
Decommission Status:Normal
Configured Capacity:950674255872(885.38GB)
DFS Used:730422607872(680.25GB)
DFS Remaining:220251648000(205.13GB)
DFS Delay Deleting:2684354560(2.5KB)
DFS Used%:76.83%
DFS Remaining%:23.17%
DFS Delay Deletingi%:0%
Last contact:Wed Nov0610:50:49CST2013
Name:10.185.1.159:50010
Decommission Status:Normal
Configured Capacity:950674255872(885.38GB)
DFS Used:730422607872(680.25GB)
DFS Remaining:220251648000(205.13GB)
DFS Delay Deleting:2684354560(2.5KB)
DFS Used%:76.83%
DFS Remaining%:23.17%
DFS Delay Deletingi%:0%
Last contact:Wed Nov0610:50:49CST2013
Name:10.185.1.160:50010
Decommission Status:Normal
Configured Capacity:950674255872(885.38GB)
DFS Used:730422607872(680.25GB)
DFS Remaining:220251648000(205.13GB)
DFS Delay Deleting:2684354560(2.5KB)
DFS Used%:76.83%
DFS Remaining%:23.17%
DFS Delay Deletingi%:0%
Last contact:Wed Nov0610:50:49CST2013”。
507,客户端确定是否需要向数据节点中的至少一个数据节点下发用于指示清空数据节点中延迟队列中所有数据块标识所对应的数据块的清空指令;
在实际应用中,管理人员可以根据数据节点中的延迟删除存储空间和延迟删除百分比确定是否需要清除该数据节点中的延迟删除数据块,比如,当一个数据节点中的延迟删除存储空间和延迟删除百分比比较大时,比如延迟删除存储空间大于第一预定阈值,延迟删除百分比大于第二预定阈值,则管理人员可以确定删除该数据节点中的延迟删除数据块。
508,客户端若确定出需要向数据节点中的至少一个数据节点下发清空指令,则向确定出的数据节点下发清空指令;
在实际应用中,客户端执行清理数据节点中的延迟删除文件操作时,格式如下:
hadoop dfsadmin-clearDelayDeletedFile[datanodeIp]
其中datanodeIp可选,为清理的数据节点的ip,当datanodeIp为空时则清空Hadoop集群中所有数据节点的延迟删除数据块。
也就是说,管理人员在客户端可以查看出每个数据节点中的延迟删除数据块所占的存储空间和百分比,管理人员可以根据实际情况选择删除其中的一个或部分数据节点中的延迟删除数据块,也可以选择删除所有数据节点中的延迟删除数据块。当选定需要删除其中一个数据节点中的延迟删除数据块,则客户端则可以向该数据节点发送清空指令。
509,数据节点接收客户端发送的清空指令;
510,数据节点删除延迟队列中所有数据块标识所对应的数据块。
此外,客户端还可以向数据节点下发携带有指定时长的时间配置指令,该时间配置指令用于对数据节点中的预定时间阈值进行动态配置,以便数据节点根据该时间配置指令将预定时间阈值更新为指定时长。这样,数据节点在数据块标识存入至延迟队列的存入时间达到更新为指定时长的预定时间阈值时,删除该数据块标识所对应的数据块。
在实际应用中,客户端可以在配置文件conf/hdfs-site.xml中增加延迟删除文件开关,比如:
“<property>
<name>dfs.delaydeletion.time.sec</name>
<value>10</value>
</property>”
其中,当value大于0时,打开延迟删除开关,该值为延迟时间间隔,单位可以为秒、分或时,当value小于等于0时,关闭延迟删除。
也就是说,可以设置延迟删除开关,当设置该延迟删除开关为打开时,则在数据节点中的数据块标识存入延迟队列的时间达到预定时间阈值(即上面Value设定的延迟时间间隔)时,数据节点则清除该数据块标识所对应的数据块。当而设置该延迟删除开关为关闭时,则不通过延迟时间这种方式来确定是否清除延迟队列中的数据块标识所对应的数据块。
Hadoop系统启动默认读取该value值,不需要重启Hadoop系统,用户可以输入命令动态更新此配置,命令如下:
hadoop dfsadmin-setDelayDeletedTimeSec value
其中,value为新的延迟时间间隔,单位可以为秒、分或时。
需要说明的是,在实际应用中,用户如果发送误删除时,通常会在很短的时间内意识到删除操作是误操作,因此该value的值的单位可以设置为秒。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的方法,通过数据节点确定延迟删除存储空间以及延迟删除百分比,并将延迟删除存储空间以及延迟删除百分比发送给管理节点,客户端在查看到每个数据节点中延迟删除存储空间以及延迟删除百分比时,可以确定是否清除某些或全部的数据节点中的延迟删除数据块;从而实现了可以选择性的确定需要清除的数据节点。
请参见图6所示,其示出了本发明一个实施例中提供的分布式数据仓库中删除文件的系统的结构示意图,本实施例主要以该分布式数据仓库中删除文件的系统应用于图1所示的实施环境中进行举例说明,该分布式数据仓库中删除文件的系统可以包括:客户端620、管理节点640和至少一个数据节点660。
客户端620可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括第三发送模块621。
第三发送模块621,可以用于向管理节点640发送用于指示删除指定文件的文件删除指令,以便管理节点640在接收到文件删除指令之后,对于每一个数据节点660,根据预存的文件与数据块标识之间的对应关系以及预存的数据块标识与数据节点660之间的对应关系,确定出存储在数据节点660中属于指定文件的数据块;向数据节点660发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点660接收删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
管理节点640可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括:第三接收模块641、第四接收模块642、第二确定模块643和第二发送模块644。
第三接收模块641,用于接收客户端620的第三发送模块621发送的用于指示删除指定文件的文件删除指令;
第四接收模块642,用于接收数据节点发送的心跳上报,根据心跳上报确定数据块标识到数据节点的映射,心跳上报包括数据节点存储的所有数据块的数据块标识;
第二确定模块643,用于对于每一个数据节点660,根据预存的文件与数据块标识之间的对应关系以及根据心跳上报确定的数据块标识到数据节点660的映射,确定出存储在数据节点660中属于指定文件的数据块;
第二发送模块644,用于在向数据节点660发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点660接收删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
数据节点660可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括:心跳发送模块661、获取模块662、存入模块663和删除模块664。
心跳发送模块661,用于向管理节点的第四接收模块642发送心跳上报,心跳上报包括数据节点存储的所有数据块的数据块标识,心跳上报用于使得管理节点根据心跳上报确定数据块标识到数据节点的映射;
获取模块662,用于接收管理节点640中的第二发送模块644返回的心跳返回,从心跳返回中获取管理节点640的第二发送模块644发送的携带有数据块标识的删除指令;
存入模块663,用于将数据块标识存入至延迟队列中并记录存入的时间;
删除模块664,用于在指定条件下删除延迟队列中存储的数据块标识所对应的数据节点中的数据块。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的系统,通过在数据节点中接收管理节点发送的携带有数据块标识的删除指令,将所述数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
请参见图7所示,其示出了本发明另一个实施例中提供的分布式数据仓库中删除文件的系统的结构示意图,本实施例主要以该分布式数据仓库中删除文件的系统应用于图1所示的实施环境中进行举例说明,该分布式数据仓库中删除文件的系统可以包括:客户端720、管理节点740和至少一个数据节点760。
数据节点760可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括:心跳发送模块7611、获取模块761、存入模块762和删除模块763。
心跳发送模块7611,用于向管理节点发送心跳上报,心跳上报包括数据节点存储的所有数据块的数据块标识,心跳上报用于使得管理节点根据心跳上报确定数据块标识到数据节点的映射;
获取模块761,可以用于接收心跳返回,从心跳返回中获取管理节点740发送的携带有数据块标识的删除指令;
存入模块762,可以用于将数据块标识存入至延迟队列中并记录存入的时间;
删除模块763,可以用于在指定条件下删除延迟队列中存储的数据块标识所对应的数据节点中的数据块。
在实施例中的第一种可能的实现方式中,删除模块763可以包括:第一删除单元763a和第二删除单元763b。
第一删除单元763a,可以用于在数据块标识存入至延迟队列的时间达到预定时间阈值时,删除数据块标识所对应的数据节点中的数据块;
或,
第二删除单元763b,可以用于在接收到客户端720下发的用于指示清空延迟队列中所有数据块标识所对应的数据块的清空指令时,删除延迟队列中所有数据块标识所对应的数据节点中的数据块。
在实施例中的第二种可能的实现方式中,数据节点760中的分布式数据仓库中删除文件的装置还可以包括第一接收模块764和上报模块765。
第一接收模块764,可以用于接收管理节点740发送的用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令;
上报模块765,可以用于向管理节点740发送携带有数据节点存储的所有数据块的数据块标识的心跳上报,以便管理节点740根据接收到的心跳上报中的数据块标识构建数据块标识到数据节点的映射。
在实施例中的第三种可能的实现方式中,数据节点760中的分布式数据仓库中删除文件的装置还可以包括第一确定模块766、计算模块767和第一发送模块768。
第一确定模块766,可以用于确定延迟队列中所有数据块标识所对应的数据块;
计算模块767,可以用于计算所述数据节点中的所述数据块在所述数据节点中的占用参数;
第一发送模块768,可以用于将所述计算模块767计算的所述占用参数发送给所述管理节点,以便所述管理节点740接收所述占用参数,所述客户端720在查看到所述占用参数之后确定是否需要向所述数据节点下发用于指示清空所述数据节点760中所述延迟队列中所有数据块标识所对应的数据块的清空指令。
在实施例中的第四种可能的实现方式中,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述计算模块767可以包括:
第一计算单元767a,可以用于计算所述数据块所占用的所述数据节点的存储空间,将所述存储空间确定为所述延迟删除存储空间;
第二计算单元767b,可以用于计算所述延迟删除存储空间占用所述数据节点的总存储空间的百分比,将所述百分比确定为所述延迟删除百分比。
在实施例中的第五种可能的实现方式中,数据节点760中的分布式数据仓库中删除文件的装置还可以包括第二接收模块769和更新模块7610。
第二接收模块769,可以用于接收客户端720发送的携带有指定时长的时间配置指令,时间配置指令用于对预定时间阈值进行动态配置;
更新模块7610,可以用于根据第二接收模块769接收到的时间配置指令将预定时间阈值更新为指定时长。
管理节点740可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括:第三接收模块748、第四接收模块741、第二确定模块742和第二发送模块743。
第三接收模块748,可以用于接收客户端720发送的用于指示删除指定文件的文件删除指令;
第四接收模块741,用于接收数据节点760中心跳发送模块7611发送的心跳上报,根据所述心跳上报确定所述数据块标识到所述数据节点的映射,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识;
第二确定模块742,可以用于对于每一个数据节点760,根据预存的文件与数据块标识之间的对应关系以及根据所述心跳上报确定的数据块标识到数据节点的映射,确定出存储在数据节点中属于指定文件的数据块;
第二发送模块743,可以用于在向数据节点760的获取模块761发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点760接收删除指令;将数据块标识存入至延迟队列中;在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
在实施例中的第六种可能的实现方式中,管理节点740中的分布式数据仓库中删除文件的装置可以包括:第五接收模块744、第一恢复模块745和第二恢复模块746。
第五接收模块744,可以用于接收客户端720发送的用于指示恢复指定文件的文件恢复指令;
第一恢复模块745,可以用于恢复符合条件的第一对应关系,符合条件的第一对应关系为在发送删除指令之前备份的且备份的时间与发送删除指令的时间距离最近的第一对应关系,第一对应关系包含指定文件和指定文件包含的数据块的数据块标识;
第二恢复模块746,可以用于恢复第二对应关系,该第二对应关系为数据块的数据块标识到存储该数据块的数据节点的映射。
在实施例中的第七种可能的实现方式中,第一恢复模块745可以包括:获取单元745a和读入单元745b。
获取单元745a,用于获取符合条件的第一对应关系;
读入单元745b,可以用于将获取单元745a获取的第一对应关系读入管理节点的内存。
在实施例中的第八种可能的实现方式中,第二恢复模块746可以包括:发送单元746a、接收单元746b和构建单元746c。
发送单元746a,可以用于向数据节点760的第一接收模块764发送用于指示恢复延迟队列中存储的数据块标识所对应的数据块的恢复指令,以便数据节点760的第一接收模块764接收到恢复指令之后,上报模块765向管理节点740发送携带有存储的所有数据块的数据块标识的心跳上报;
接收单元746b,可以用于接收数据节点760的上报模块765发送的心跳上报;
构建单元746c,可以用于根据接收单元746b接收到的心跳上报中的数据块标识构建数据块标识到数据节点的映射。
在实施例中的第九种可能的实现方式中,该管理节点740中的分布式数据仓库中删除文件的装置可以包括:第六接收模块747。
第六接收模块747,可以用于接收数据节点760的第一发送模块768发送的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,延迟删除存储空间为数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,延迟删除百分比为延迟删除存储空间占用数据节点的总存储空间的百分比,以便客户端720在查看到占用参数之后确定是否向数据节点下发用于指示清空数据节点中延迟队列中所有数据块标识所对应的数据块的清空指令。
客户端720可以包括分布式数据仓库中删除文件的装置,该分布式数据仓库中删除文件的装置可以包括:第三发送模块721。
第三发送模块721,用于向管理节点740的第三接收模块748发送用于指示删除指定文件的文件删除指令,以便管理节点740的第三接收模块748在接收到文件删除指令之后,对于每一个数据节点,第二确定模块742根据预存的文件与数据块标识之间的对应关系以及根据数据节点发送的心跳上报确定的数据块标识到数据节点的映射,确定出存储在数据节点760中属于指定文件的数据块;第二发送模块743在向数据节点760的获取模块761发送的心跳返回中添加携带有数据块的数据块标识的删除指令,以便数据节点760的获取模块761接收删除指令;存入模块762将数据块标识存入至延迟队列中;删除模块763在指定条件下删除延迟队列中存储的数据块标识所对应的数据块。
在实施例中的第十种可能的实现方式中,客户端720中的分布式数据仓库中删除文件的装置还可以包括:查看模块722、第三确定模块723和第一下发模块724。
查看模块722,用于查看每一个数据节点760发送给管理节点740中的第六接收模块747的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,延迟删除存储空间为数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,延迟删除百分比为延迟删除存储空间占用数据节点的总存储空间的百分比;
第三确定模块723,用于确定是否需要向数据节点中的至少一个数据节点760下发用于指示清空数据节点760中延迟队列中所有数据块标识所对应的数据块的清空指令;
第一下发模块724,用于在第三确定模块723确定出需要向数据节点中的至少一个数据节点760下发清空指令,则向确定出的数据节点760的第二删除单元763b下发清空指令。
在实施例中的第十一种可能的实现方式中,客户端720中的分布式数据仓库中删除文件的装置还可以包括:第二下发模块725。
第二下发模块725,用于向数据节点760的第二接收模块769下发携带有指定时长的时间配置指令,时间配置指令用于对预定时间阈值进行动态配置,以便数据节点760的更新模块7610根据时间配置指令将预定时间阈值更新为指定时长。
在实施例中的第十二种可能的实现方式中,客户端720中的分布式数据仓库中删除文件的装置还可以包括:第四发送模块726。
第四发送模块726,用于向管理节点740的第五接收模块744发送用于指示恢复指定文件的文件恢复指令,以便管理节点740的第五接收模块744在接收到文件恢复指令之后,第一恢复模块745恢复符合条件的第一对应关系,符合条件的第一对应关系为在发送删除指令之前备份的且备份的时间与发送删除指令的时间距离最近的第一对应关系,第一对应关系包含指定文件和指定文件包含的数据块的数据块标识;第二恢复模块746恢复第二对应关系,所述第二对应关系为指定文件包含的所述数据块标识到所述数据节点760的映射。
需要说明的是,上述的客户端720、管理节点740和数据节点760均可以单独实施。
综上所述,本发明实施例中提供的分布式数据仓库中删除文件的系统,通过在数据节点中接收管理节点发送的携带有数据块标识的删除指令,将所述数据块标识存入至延迟队列中,在指定条件下删除该延迟队列中存储的数据块标识所对应的数据块;解决了现有技术中NameNode中设置的回收站对某些情况下的误删除操作无法进行修复,降低了Hadoop系统的数据安全性的问题;由于数据节点在接收到删除指令之后,并没有直接删除指定的数据块,而是延迟了一段时间,因此在这段时间,如果用户发现进行了误删除操作,则可以对这些数据块进行恢复,达到了可以很大程度上保证了Hadoop系统中数据的安全性的效果。
需要说明的是:上述实施例中提供的分布式数据仓库中删除文件的装置在删除分布式数据仓库中的文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将管理节点、数据节点和客户端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的分布式数据仓库中删除文件装置与分布式数据仓库中删除文件方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (34)
1.一种分布式数据仓库中删除文件的方法,其特征在于,所述方法包括:
向管理节点发送心跳上报,所述心跳上报包括数据节点存储的所有数据块的数据块标识,所述心跳上报用于使得所述管理节点根据所述心跳上报确定所述数据块标识到所述数据节点的映射;
接收心跳返回,从接收到的所述心跳返回中获取所述管理节点发送的携带有数据块标识的删除指令;
将所述数据块标识存入至延迟队列中并记录存入的时间,所述延迟队列用于保存需要删除的数据块的数据块标识;
在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的所述数据节点中的数据块。
2.根据权利要求1所述的方法,其特征在于,所述在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据节点中的数据块,包括:
在所述数据块标识存入至所述延迟队列的时间达到预定时间阈值时,删除所述数据块标识所对应的所述数据节点中的数据块;
或,
在接收到客户端下发的用于指示清空所述延迟队列中所有数据块标识所对应的数据块的清空指令时,删除所述延迟队列中所有数据块标识所对应的所述数据节点中的数据块。
3.根据权利要求2所述的方法,其特征在于,在所述将所述数据块标识存入至延迟队列中并记录存入的时间之后,还包括:
接收所述管理节点发送的用于指示恢复所述延迟队列中存储的所述数据块标识所对应的数据块的恢复指令;
向所述管理节点发送携带有所述数据节点存储的所有数据块的数据块标识的心跳上报,以便所述管理节点根据接收到的所述心跳上报中的所述数据块标识构建所述数据块标识到所述数据节点的映射。
4.根据权利要求2或3所述的方法,其特征在于,在所述在接收到所述客户端下发的用于指示清空所述延迟队列中所有数据块标识所对应的数据块的清空指令时,删除所述延迟队列中所有数据块标识所对应的所述数据节点中的数据块之前,还包括:
确定所述延迟队列中所有数据块标识所对应的所述数据节点中的数据块;
计算所述数据节点中的所述数据块在所述数据节点中的占用参数;
将所述占用参数发送给所述管理节点,以便所述管理节点接收所述占用参数,所述客户端在查看到所述占用参数之后确定是否需要向所述数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令。
5.根据权利要求4所述的方法,其特征在于,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述计算所述数据节点中的所述数据块在所述数据节点中的占用参数,包括:
计算所述数据块所占用的所述数据节点的存储空间,将所述存储空间确定为所述延迟删除存储空间;
计算所述延迟删除存储空间占用所述数据节点的总存储空间的百分比,将所述百分比确定为所述延迟删除百分比。
6.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的携带有指定时长的时间配置指令,所述时间配置指令用于对所述预定时间阈值进行动态配置;
根据所述时间配置指令将所述预定时间阈值更新为所述指定时长。
7.一种分布式数据仓库中删除文件的方法,其特征在于,所述方法包括:
接收客户端发送的用于指示删除指定文件的文件删除指令;
接收数据节点发送的心跳上报,根据所述心跳上报确定数据块标识到所述数据节点的映射,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识;
对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据所述心跳上报确定的所述数据块标识到所述数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;
在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中,所述延迟队列用于保存需要删除的数据块的数据块标识;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的用于指示恢复所述指定文件的文件恢复指令;
恢复符合条件的第一对应关系,所述符合条件的第一对应关系为在发送所述删除指令之前备份的且备份的时间与发送所述删除指令的时间距离最近的第一对应关系,所述第一对应关系包含所述指定文件和所述指定文件包含的数据块的数据块标识;
恢复第二对应关系,所述第二对应关系为数据块的数据块标识到存储所述数据块的数据节点的映射。
9.根据权利要求8所述的方法,其特征在于,所述恢复符合条件的第一对应关系,包括:
获取所述符合条件的第一对应关系;
将所述第一对应关系读入管理节点的内存。
10.根据权利要求8所述的方法,其特征在于,所述恢复第二对应关系,包括:
向所述数据节点发送用于指示恢复所述延迟队列中存储的所述数据块标识所对应的数据块的恢复指令,以便所述数据节点接收到所述恢复指令之后,向管理节点发送携带有存储的所有数据块的数据块标识的心跳上报;
接收所述数据节点发送的所述心跳上报;
根据接收到的所述心跳上报中的所述数据块标识构建所述数据块标识到所述数据节点的映射。
11.根据权利要求7至10中任一所述的方法,其特征在于,所述方法还包括:
接收所述数据节点发送的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述延迟删除存储空间为所述数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,所述延迟删除百分比为所述延迟删除存储空间占用所述数据节点的总存储空间的百分比,以便所述客户端在查看到所述占用参数之后确定是否向所述数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令。
12.一种分布式数据仓库中删除文件的方法,其特征在于,所述方法包括:
向管理节点发送用于指示删除指定文件的文件删除指令,以便所述管理节点在接收到所述文件删除指令之后,对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据数据节点发送的心跳上报确定的数据块标识到数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中,所述延迟队列用于保存需要删除的数据块的数据块标识;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
查看每一个数据节点发送给所述管理节点的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述延迟删除存储空间为所述数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,所述延迟删除百分比为所述延迟删除存储空间占用所述数据节点的总存储空间的百分比;
确定是否需要向所述数据节点中的至少一个数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令;
若确定出需要向所述数据节点中的至少一个数据节点下发所述清空指令,则向确定出的所述数据节点下发所述清空指令。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
向所述数据节点下发携带有指定时长的时间配置指令,所述时间配置指令用于对预定时间阈值进行动态配置,以便所述数据节点根据所述时间配置指令将所述预定时间阈值更新为所述指定时长。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
向所述管理节点发送用于指示恢复所述指定文件的文件恢复指令,以便所述管理节点在接收到所述文件恢复指令之后,恢复符合条件的第一对应关系,所述符合条件的第一对应关系为在发送所述删除指令之前备份的且备份的时间与发送所述删除指令的时间距离最近的第一对应关系,所述第一对应关系包含所述指定文件和所述指定文件包含的数据块的数据块标识;恢复第二对应关系,所述第二对应关系为指定文件包含的所述数据块标识到所述数据节点的映射。
16.一种分布式数据仓库中删除文件的装置,其特征在于,所述装置包括:
心跳发送模块,用于向管理节点发送心跳上报,所述心跳上报包括数据节点存储的所有数据块的数据块标识,所述心跳上报用于使得所述管理节点根据所述心跳上报确定所述数据块标识到所述数据节点的映射;
获取模块,用于接收心跳返回,从所述心跳返回中获取所述管理节点发送的携带有数据块标识的删除指令;
存入模块,用于将所述数据块标识存入至延迟队列中并记录存入的时间,所述延迟队列用于保存需要删除的数据块的数据块标识;
删除模块,用于在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的所述数据节点中的数据块。
17.根据权利要求16所述的装置,其特征在于,所述删除模块,包括:
第一删除单元,用于在所述数据块标识存入至所述延迟队列的时间达到预定时间阈值时,删除所述数据块标识所对应的所述数据节点中的数据块;
或,
第二删除单元,用于在接收到客户端下发的用于指示清空所述延迟队列中所有数据块标识所对应的数据块的清空指令时,删除所述延迟队列中所有数据块标识所对应的所述数据节点中的数据块。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述管理节点发送的用于指示恢复所述延迟队列中存储的所述数据块标识所对应的数据块的恢复指令;
上报模块,用于向所述管理节点发送携带有所述数据节点存储的所有数据块的数据块标识的心跳上报,以便所述管理节点根据接收到的所述心跳上报中的所述数据块标识构建所述数据块标识到所述数据节点的映射。
19.根据权利要求17或18所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于确定所述延迟队列中所有数据块标识所对应的所述数据节点中的数据块;
计算模块,计算所述数据节点中的所述数据块在所述数据节点中的占用参数;
第一发送模块,用于将所述计算模块计算的所述占用参数发送给所述管理节点,以便所述管理节点接收所述占用参数,所述客户端在查看到所述占用参数之后确定是否需要向所述数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令。
20.根据权利要求19所述的装置,其特征在于,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述计算模块,包括:
第一计算单元,用于计算所述数据块所占用的所述数据节点的存储空间,将所述存储空间确定为所述延迟删除存储空间;
第二计算单元,用于计算所述延迟删除存储空间占用所述数据节点的总存储空间的百分比,将所述百分比确定为所述延迟删除百分比。
21.根据权利要求17或18所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述客户端发送的携带有指定时长的时间配置指令,所述时间配置指令用于对所述预定时间阈值进行动态配置;
更新模块,用于根据所述第二接收模块接收到的所述时间配置指令将所述预定时间阈值更新为所述指定时长。
22.一种分布式数据仓库中删除文件的装置,其特征在于,所述装置包括:
第三接收模块,用于接收客户端发送的用于指示删除指定文件的文件删除指令;
第四接收模块,用于接收数据节点发送的心跳上报,根据所述心跳上报确定数据块标识到所述数据节点的映射,所述心跳上报包括所述数据节点存储的所有数据块的数据块标识;
第二确定模块,用于对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据所述心跳上报确定的所述数据块标识到所述数据节点的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;
第二发送模块,用于在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中,所述延迟队列用于保存需要删除的数据块的数据块标识;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
23.根据权利要求22所述的装置,其特征在于,所述装置还包括:
第五接收模块,用于接收所述客户端发送的用于指示恢复所述指定文件的文件恢复指令;
第一恢复模块,用于恢复符合条件的第一对应关系,所述符合条件的第一对应关系为在发送所述删除指令之前备份的且备份的时间与发送所述删除指令的时间距离最近的第一对应关系,所述第一对应关系包含所述指定文件和所述指定文件包含的数据块的数据块标识;
第二恢复模块,用于恢复第二对应关系,所述第二对应关系为数据块的数据块标识到存储所述数据块的数据节点的映射。
24.根据权利要求23所述的装置,其特征在于,所述第一恢复模块,包括:
获取单元,用于获取所述符合条件的第一对应关系;
读入单元,用于将所述获取单元获取的所述第一对应关系读入管理节点的内存。
25.根据权利要求23所述的装置,其特征在于,所述第二恢复模块,包括:
发送单元,用于向所述数据节点发送用于指示恢复所述延迟队列中存储的所述数据块标识所对应的数据块的恢复指令,以便所述数据节点接收到所述恢复指令之后,向管理节点发送携带有存储的所有数据块的数据块标识的心跳上报;
接收单元,用于接收所述数据节点发送的所述心跳上报;
构建单元,用于根据所述接收单元接收到的所述心跳上报中的所述数据块标识构建所述数据块标识到所述数据节点的映射。
26.根据权利要求22至25中任一所述的装置,其特征在于,所述装置还包括:
第六接收模块,用于接收所述数据节点发送的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述延迟删除存储空间为所述数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,所述延迟删除百分比为所述延迟删除存储空间占用所述数据节点的总存储空间的百分比,以便所述客户端在查看到所述占用参数之后确定是否向所述数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令。
27.一种分布式数据仓库中删除文件的装置,其特征在于,所述装置包括:
第三发送模块,用于向管理节点发送用于指示删除指定文件的文件删除指令,以便所述管理节点在接收到所述文件删除指令之后,对于每一个数据节点,根据预存的文件与数据块标识之间的对应关系以及根据数据节点发送的心跳上报确定的数据块标识到数据节点之间的映射,确定出存储在所述数据节点中属于所述指定文件的数据块;在向所述数据节点发送的心跳返回中添加携带有所述数据块的数据块标识的删除指令,以便所述数据节点接收所述删除指令;将所述数据块标识存入至延迟队列中,所述延迟队列用于保存需要删除的数据块的数据块标识;在指定条件下删除所述延迟队列中存储的所述数据块标识所对应的数据块。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括:
查看模块,用于查看每一个数据节点发送给所述管理节点的占用参数,所述占用参数包括延迟删除存储空间和延迟删除百分比,所述延迟删除存储空间为所述数据节点的延迟队列中所有数据块标识所对应的数据块所占的存储空间,所述延迟删除百分比为所述延迟删除存储空间占用所述数据节点的总存储空间的百分比;
第三确定模块,用于确定是否需要向所述数据节点中的至少一个数据节点下发用于指示清空所述数据节点中所述延迟队列中所有数据块标识所对应的数据块的清空指令;
第一下发模块,用于在所述第三确定模块确定出需要向所述数据节点中的至少一个数据节点下发所述清空指令,则向确定出的所述数据节点下发所述清空指令。
29.根据权利要求27所述的装置,其特征在于,所述装置还包括:
第二下发模块,用于向所述数据节点下发携带有指定时长的时间配置指令,所述时间配置指令用于对预定时间阈值进行动态配置,以便所述数据节点根据所述时间配置指令将所述预定时间阈值更新为所述指定时长。
30.根据权利要求27所述的装置,其特征在于,所述装置还包括:
第四发送模块,用于向所述管理节点发送用于指示恢复所述指定文件的文件恢复指令,以便所述管理节点在接收到所述文件恢复指令之后,恢复符合条件的第一对应关系,所述符合条件的第一对应关系为在发送所述删除指令之前备份的且备份的时间与发送所述删除指令的时间距离最近的第一对应关系,所述第一对应关系包含所述指定文件和所述指定文件包含的数据块的数据块标识;恢复第二对应关系,所述第二对应关系为指定文件包含的所述数据块标识到所述数据节点的映射。
31.一种数据节点,其特征在于,所述数据节点包括如权利要求16至21中任一所述的分布式数据仓库中删除文件的装置。
32.一种管理节点,其特征在于,所述管理节点包括如权利要求22至26中任一所述的分布式数据仓库中删除文件的装置。
33.一种客户端,其特征在于,所述客户端包括如权利要求27至30中任一所述的分布式数据仓库中删除文件的装置。
34.一种分布式数据仓库中删除文件的系统,其特征在于,所述系统包括客户端、管理节点和至少一个数据节点;
所述客户端包括如权利要求27至30中任一所述的分布式数据仓库中删除文件的装置;
所述管理节点包括如权利要求22至26中任一所述的分布式数据仓库中删除文件的装置;
所述数据节点包括如权利要求16至21中任一所述的分布式数据仓库中删除文件的装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310628849.9A CN104679772B (zh) | 2013-11-29 | 2013-11-29 | 分布式数据仓库中删除文件的方法、装置、设备及系统 |
US15/033,853 US9830327B2 (en) | 2013-11-29 | 2014-11-26 | Method, device, node and system for managing file in distributed data warehouse |
PCT/CN2014/092258 WO2015078370A1 (en) | 2013-11-29 | 2014-11-26 | Method, device, node and system for managing file in distributed data warehouse |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310628849.9A CN104679772B (zh) | 2013-11-29 | 2013-11-29 | 分布式数据仓库中删除文件的方法、装置、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679772A CN104679772A (zh) | 2015-06-03 |
CN104679772B true CN104679772B (zh) | 2019-01-25 |
Family
ID=53198370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310628849.9A Active CN104679772B (zh) | 2013-11-29 | 2013-11-29 | 分布式数据仓库中删除文件的方法、装置、设备及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9830327B2 (zh) |
CN (1) | CN104679772B (zh) |
WO (1) | WO2015078370A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612924B1 (en) * | 2014-06-25 | 2017-04-04 | Amazon Technologies, Inc. | Fault tolerance in a distributed file system |
CN105095489A (zh) * | 2015-08-18 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件删除方法、装置和系统 |
CN105550362B (zh) * | 2015-12-31 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种存储系统的索引数据修复方法和存储系统 |
JP6055948B1 (ja) * | 2016-04-20 | 2016-12-27 | 株式会社岩崎電機製作所 | データベース構築装置、データベース構築方法、および、データベース構築プログラム |
CN107491975B (zh) * | 2016-06-13 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 用于服务器和用于消费者的数据槽数据处理方法和装置 |
CN106649555A (zh) * | 2016-11-08 | 2017-05-10 | 深圳市中博睿存科技有限公司 | 存储单元状态标记方法及分布式存储系统 |
CN106775380A (zh) * | 2016-11-24 | 2017-05-31 | 宇龙计算机通信科技(深圳)有限公司 | 防止误操作的纠错方法、装置和移动终端 |
US10447763B2 (en) * | 2016-12-08 | 2019-10-15 | Nanning Fugui Precision Industrial Co., Ltd. | Distributed storage method and system |
CN108241556A (zh) * | 2016-12-26 | 2018-07-03 | 航天信息股份有限公司 | Hdfs中数据异地备份的方法及装置 |
CN106878068B (zh) * | 2017-01-24 | 2020-05-12 | 新华三技术有限公司 | 一种配置管理方法和装置 |
US11468008B2 (en) | 2017-06-16 | 2022-10-11 | Huawei Technologies Co., Ltd. | File processing method and mobile terminal |
CN107203643A (zh) * | 2017-06-20 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种删除文件的方法及系统 |
CN107315661B (zh) * | 2017-06-30 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种集群文件系统已删除文件恢复方法及装置 |
CN108228100A (zh) * | 2017-12-27 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种基于海量存储系统的数据安全处理方法和系统 |
US10691549B2 (en) | 2018-02-08 | 2020-06-23 | International Business Machines Corporation | System managed facilitation of backup of dataset before deletion |
CN109831540B (zh) * | 2019-04-12 | 2022-02-11 | 成都四方伟业软件股份有限公司 | 分布式存储方法、装置、电子设备及存储介质 |
CN110750503A (zh) * | 2019-09-27 | 2020-02-04 | 浪潮电子信息产业股份有限公司 | 一种文件删除速度控制方法、装置、设备及可读存储介质 |
US11481399B1 (en) | 2019-10-25 | 2022-10-25 | Palantir Technologies Inc. | Nested discovery and deletion of resources |
CN110888844B (zh) * | 2019-11-22 | 2023-03-21 | 浪潮电子信息产业股份有限公司 | 一种数据删除方法、系统、设备及计算机可读存储介质 |
CN111176901B (zh) * | 2019-12-31 | 2022-10-11 | 厦门市美亚柏科信息股份有限公司 | 一种hdfs删除文件恢复方法、终端设备及存储介质 |
US11392436B2 (en) | 2020-04-01 | 2022-07-19 | Western Digital Technologies, Inc. | Advanced file recovery method for flash memory |
CN111580755B (zh) * | 2020-05-09 | 2022-07-05 | 杭州海康威视系统技术有限公司 | 分布式数据处理系统、分布式数据处理方法 |
CN113949482A (zh) * | 2020-07-15 | 2022-01-18 | 华为技术有限公司 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
CN112148712A (zh) * | 2020-09-27 | 2020-12-29 | 上海依图网络科技有限公司 | 一种数据处理方法、装置、设备及介质 |
CN112632043B (zh) * | 2021-01-26 | 2021-08-17 | 浙江争游网络科技有限公司 | 一种数据仓库优化方法和装置 |
CN114153385B (zh) * | 2021-11-12 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种分布式存储写缓冲数据分步下刷方法、装置及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100825720B1 (ko) * | 2005-12-08 | 2008-04-29 | 한국전자통신연구원 | 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버 |
US8918365B2 (en) * | 2009-06-19 | 2014-12-23 | Blekko, Inc. | Dedicating disks to reading or writing |
CN101706817B (zh) | 2009-12-01 | 2012-07-04 | 中兴通讯股份有限公司 | 分布式文件系统及其垃圾数据清理方法 |
JP5315460B1 (ja) * | 2011-09-07 | 2013-10-16 | 株式会社オレガ | ファイル管理システム及びファイル管理方法 |
CN103092891B (zh) | 2011-11-08 | 2016-01-27 | 中国移动通信集团四川有限公司 | 分布式文件存储系统及其实现方法 |
CN103399941A (zh) * | 2013-08-13 | 2013-11-20 | 广州中国科学院软件应用技术研究所 | 一种分布式文件处理方法、装置及系统 |
-
2013
- 2013-11-29 CN CN201310628849.9A patent/CN104679772B/zh active Active
-
2014
- 2014-11-26 WO PCT/CN2014/092258 patent/WO2015078370A1/en active Application Filing
- 2014-11-26 US US15/033,853 patent/US9830327B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9830327B2 (en) | 2017-11-28 |
WO2015078370A1 (en) | 2015-06-04 |
US20160253362A1 (en) | 2016-09-01 |
CN104679772A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679772B (zh) | 分布式数据仓库中删除文件的方法、装置、设备及系统 | |
CN107045422B (zh) | 分布式存储方法和设备 | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
CN102411637B (zh) | 分布式文件系统的元数据管理方法 | |
CN101539873B (zh) | 数据恢复的方法、数据节点及分布式文件系统 | |
CN104813321B (zh) | 在分布式对象存储生态系统中的去耦合的内容以及元数据 | |
CN101577735B (zh) | 一种接管故障元数据服务器的方法、装置及系统 | |
CN110990432B (zh) | 一种跨机房同步分布式缓存集群的装置和方法 | |
CN102411639B (zh) | 元数据的多副本存储管理方法和系统 | |
CN108763436A (zh) | 一种基于ElasticSearch与HBase的分布式数据存储系统 | |
CN102968486B (zh) | 一种基于变化日志的高可靠文件同步方法 | |
US9031906B2 (en) | Method of managing data in asymmetric cluster file system | |
CN103902410B (zh) | 云存储系统的数据备份加速方法 | |
CN103138912B (zh) | 数据同步方法及系统 | |
CN102142024A (zh) | 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退 | |
CN108197260A (zh) | 一种文档管理系统 | |
CN107015885A (zh) | 主备用数据库切换时的服务提供方法、系统和配置中心 | |
CN109391647B (zh) | 存储资源回收方法、装置及系统 | |
CN103377100B (zh) | 一种数据备份方法、网络节点及系统 | |
CN102708158B (zh) | 一种PostgreSQL云存储归档调度系统 | |
CN107256182A (zh) | 一种数据库还原的方法及设备 | |
CN103902405B (zh) | 一种准连续性数据复制方法及装置 | |
CN104252485A (zh) | 一种数据库管理平台 | |
JP2007241486A (ja) | 記憶装置システム | |
CN103605585A (zh) | 一种基于数据发现的智能备份方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |