文件传输方法、装置及分布式集群文件系统的制作方法

文档序号:7780910阅读:260来源:国知局
文件传输方法、装置及分布式集群文件系统的制作方法
【专利摘要】本发明公开了一种文件传输方法、装置及分布式集群文件系统,属于信息【技术领域】。所述方法包括:获取分布式协调节点集群中的待传输文件信息;根据该待传输文件信息和至少一个从推送节点的心跳信息,确定该至少一个从推送节点中保存有待传输文件,该心跳信息至少携带从推送节点所保存的文件信息,该待传输文件为该至少一个从推送节点从文件存储节点集群中拉取;生成文件传输路径,该文件传输路径包括至少一个目的节点集群;向该至少一个从推送节点发送该文件传输路径。本发明通过利用分布式协调节点集群维护待传输文件信息,由推送节点集群根据待传输文件信息实现文件传输路径的生成以及传输的具体执行过程,从而避免了单点瓶颈现象的发生。
【专利说明】文件传输方法、装置及分布式集群文件系统

【技术领域】
[0001] 本发明涉及信息【技术领域】,特别涉及一种文件传输方法、装置及分布式集群文件 系统。

【背景技术】
[0002] 随着数据规模越来越大,文件系统逐渐发展成为分布式集群文件系统。该分布式 集群文件系统可以包括数据库、接口机、调度机和多个目的节点;其中,数据库用于记录和 展示文件信息,接口机用于存放文件等,调度机用于调度和管理分布式集群文件系统内的 任务,目的节点用于存储文件。
[0003] 对于分布式集群文件系统来说,其重要职能之一在于如何快速的将文件传输至目 的节点。
[0004] 一般在利用分布式集群文件系统进行文件传输时,调度机检测数据库中是否保存 有待传输文件信息,当检测到数据库中保存有该待传输文件信息时,调度机根据该待传输 文件信息,调度接口机与多个目的节点之间的文件传输。
[0005] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0006] 由于现有的传输过程是由多个目的节点向接口机请求文件,由于接口机是一个或 少数个设备,其负载能力有限,在向多个目的节点传输文件时,所承受的压力较大,容易达 到设备磁盘10的瓶颈,不仅对本机上其他运行的程序造成较大影响,而且使得整个分布式 集群文件系统的传输受到影响,而用于维护待传输文件信息的数据库稳定性较差,当该数 据库主机出现故障时,调度机无法对文件的传输进行调度,导致整个系统处于瘫痪状态。


【发明内容】

[0007] 为了解决现有技术的问题,本发明实施例提供了一种文件传输方法、装置及分布 式集群文件系统。所述技术方案如下:
[0008] 第一方面,提供了一种分布式集群文件系统,包括:
[0009] 分布式协调节点集群,所述分布式协调节点集群包括多个协调节点,所述多个协 调节点之间共享信息,所述分布式协调节点集群用于创建待传输文件信息;
[0010] 文件存储节点集群,所述文件存储节点集群包括多个存储节点,所述文件存储节 点集群用于存储待传输文件;
[0011] 推送节点集群,所述推送节点集群包括主推送节点和至少一个从推送节点,所述 主推送节点用于根据所述待传输文件信息和至少一个从推送节点的心跳信息,确定所述至 少一个从推送节点中保存有待传输文件,所述心跳信息至少携带从推送节点所保存的文件 信息,所述待传输文件为所述至少一个从推送节点从所述文件存储节点集群中拉取;
[0012] 所述主推送节点还用于生成文件传输路径,所述文件传输路径包括至少一个目的 节点集群;
[0013] 所述主推送节点还用于向所述至少一个从推送节点发送所述文件传输路径,使得 所述至少一个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个 目的节点集群;
[0014] 所述至少一个目的节点集群,每个目的节点集群包括多个目的节点。
[0015] 第二方面,提供了一种文件传输方法,所述方法包括:
[0016] 主推送节点获取分布式协调节点集群中的待传输文件信息;
[0017] 主推送节点根据所述待传输文件信息和至少一个从推送节点的心跳信息,确定所 述至少一个从推送节点中保存有待传输文件,所述心跳信息至少携带从推送节点所保存的 文件信息,所述待传输文件为所述至少一个从推送节点从文件存储节点集群中拉取;
[0018] 所述主推送节点生成文件传输路径,所述文件传输路径包括至少一个目的节点集 群;
[0019] 所述主推送节点向所述至少一个从推送节点发送所述文件传输路径,使得所述至 少一个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个目的节 点集群;
[0020] 其中,每个目的节点集群包括多个目的节点。
[0021] 第三方面,提供了一种文件传输方法,所述方法包括:
[0022] 目的节点接收待传输文件的数据包和文件传输路径;
[0023] 所述目的节点将所述待传输文件的数据包保存在内存中;
[0024] 所述目的节点根据所述文件传输路径,将所述待传输文件的数据包发送至下一个 目的节点。
[0025] 第四方面,提供了一种文件传输装置,所述装置包括:
[0026] 文件信息获取模块,用于获取分布式协调节点集群中的待传输文件信息;
[0027] 待传输文件确定模块,用于根据分布式协调节点集群所创建的待传输文件信息和 至少一个从推送节点的心跳信息,确定所述至少一个从推送节点中保存有待传输文件,所 述心跳信息至少携带从推送节点所保存的文件信息,所述待传输文件为所述至少一个从推 送节点从文件存储节点集群中拉取;
[0028] 路径生成模块,用于生成文件传输路径,所述文件传输路径包括至少一个目的节 点集群;
[0029] 路径发送模块,用于向所述至少一个从推送节点发送所述文件传输路径,使得所 述至少一个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个目 的节点集群;其中,每个目的节点集群包括多个目的节点。
[0030] 第五方面,提供了一种文件传输装置,所述装置包括:
[0031] 接收模块,用于接收待传输文件的数据包和文件传输路径;
[0032] 保存模块,用于将所述待传输文件的数据包保存在内存中;
[0033] 发送模块,用于根据所述文件传输路径,将所述待传输文件的数据包发送至下一 个目的节点。
[0034] 本发明实施例提供的技术方案带来的有益效果是:
[0035] 通过利用分布式协调节点集群维护待传输文件信息,由推送节点集群根据待传输 文件信息实现文件传输路径的生成以及传输的具体执行过程,并通过由主推送节点负责生 成文件传输路径,而由多个从推送节点从文件存储节点集群中获取到待传输文件,再各自 进行多路传输,从而发送至多个目的节点集群,避免了现有技术中由于多个节点同时访问 单一节点以进行文件传输而造成的单点瓶颈现象,且即使分布式协调节点集群中任一个节 点出现故障,也不会影响整个文件系统的正常运转。

【专利附图】

【附图说明】
[0036] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0037] 图1是本发明实施例提供的一种分布式集群文件系统的结构示意图;
[0038] 图2是本发明实施例提供的一种文件传输方法流程图;
[0039] 图3是本发明实施例提供的一种推送节点选举示意图;
[0040] 图4是本发明实施例提供的一种文件传输示意图;
[0041] 图5是本发明实施例提供的一种文件传输方法流程图;
[0042] 图6是本发明实施例提供的一种文件传输方法流程图;
[0043] 图7是本发明实施例提供的一种文件传输装置结构示意图;
[0044] 图8是本发明实施例提供的一种文件传输装置结构示意图。

【具体实施方式】
[0045] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0046] 图1是本发明实施例提供的一种分布式集群文件系统的结构示意图。参见图1,包 括:
[0047] 分布式协调节点集群101,该分布式协调节点集群包括多个协调节点,该多个协调 节点之间共享信息,该分布式协调节点集群用于创建待传输文件信息;
[0048] 文件存储节点集群102,该文件存储节点集群包括多个存储节点,该文件存储节点 集群用于存储待传输文件;
[0049] 推送节点集群103,该推送节点集群包括主推送节点103a和至少一个从推送节点 103b,该主推送节点用于根据该待传输文件信息和至少一个从推送节点的心跳信息,确定 该至少一个从推送节点中保存有待传输文件,该心跳信息至少携带从推送节点所保存的文 件信息,该待传输文件为该至少一个从推送节点从该文件存储节点集群中拉取;
[0050] 该主推送节点103a还用于生成文件传输路径,该文件传输路径包括至少一个目 的节点集群104 ;
[0051] 该主推送节点103a还用于向该至少一个从推送节点发送该文件传输路径,使得 该至少一个从推送节点根据该文件传输路径将该待传输文件发送至该至少一个目的节点 集群;
[0052] 该至少一个目的节点集群104,每个目的节点集群包括多个目的节点。
[0053] 进一步地,该系统还包括数据库105,该数据库用于展示待传输文件的进度等状态 信息。
[0054] 可选地,该主推送节点103a用于获取已生成的文件传输路径,当该已生成的文件 传输路径中包括第一目的节点集群时,从该已生成的文件传输路径中删除该第一目的节点 集群,将删除后的文件传输路径作为当前文件传输路径,该第一目的节点集群为该主推送 节点在预设周期内未接收到心跳信息的目的节点集群;和/或,
[0055] 该主推送节点103a用于获取已生成的文件传输路径,当根据该已生成的文件传 输路径中包括第二目的节点集群时,从该已生成的文件传输路径中删除该第二目的节点集 群,将删除后的文件传输路径作为当前文件传输路径,该第二目的节点集群为当前正在执 行传输任务的目的节点集群;和/或,
[0056] 该主推送节点103a用于根据目的节点的心跳信息,获取当前文件传输路径,该文 件传输路径包括第三目的节点集群,该第三目的节点为处于空闲状态的目的节点集群;和 /或,
[0057] 该主推送节点103a用于根据对该待传输文件的数据请求,获取当前文件传输路 径,该文件传输路径中的至少一个目的节点集群包括发送该数据请求的目的节点集群。
[0058] 可选地,该从推送节点的心跳信息还携带该从推送节点的节点状态信息,
[0059] 该主推送节点103a用于根据该至少一个从推送节点的节点状态信息,从该至少 一个从推送节点中获取一个处于空闲状态的从推送节点;
[0060] 该主推送节点103a向该处于空闲状态的从推送节点发送该文件传输路径。
[0061] 可选地,该主推送节点103a由多个推送节点根据临时节点序列号选举得出,该临 时节点序列号由分布式协调系统分配。
[0062] 可选地,该从推送节点103b用于检测分布式协调节点集群所创建的该待传输文 件信息,当根据该待传输信息确定该从推送节点中不包括该待传输文件时,从该文件存储 节点集群中拉取该待传输文件。
[0063] 可选地,该系统还包括数据库105,
[0064] 该主推送节点103a还用于接收该文件传输路径中多个目的节点发送的文件传输 的进度信息,并将该文件传输的进度信息写入数据库中。
[0065] 可选地,该目的节点用于当接收到待传输文件的数据包时,向该文件传输路径中 的下一个目的节点发送接收到的数据包;或,
[0066] 该目的节点用于当接收到待传输文件的数据包时,向与该目的节点属于同一个目 的节点集群的其他目的节点中的任一个发送接收到的数据包。
[0067] 下面,结合图1所不的架构,详细描述本发明实施例提供的一种文件传输方法,参 见图2,该方法流程包括:
[0068] 201、推送客户端将待传输文件推送至文件存储节点集群。
[0069] 该步骤201具体为:当推送客户端中获取到某个文件时,可以根据需要将该文件 推送至文件存储节点集群中进行保存,则该推送客户端将该文件确定为待传输文件,并将 该待传输文件推送至文件存储节点集群。对于文件存储节点集群如HDFS (Hadoop File System, Hadoop文件系统)来说,该文件可以在HDFS中进行存储。
[0070] 202、推送客户端将待传输文件信息发送至分布式协调节点集群。
[0071] 为了清楚的了解文件存储节点集群中存储有哪些文件,推送客户端在将文件发送 至文件存储节点集群中时,可以将该文件信息发送给分布式协调节点集群。该步骤202具 体可以为:推送客户端将该待传输文件在文件存储节点集群中的保存地址、该待传输文件 的大小、该待传输文件标识和接收该待传输文件的时间等发送至分布式协调节点集群,该 分布式协调节点集群接收到该信息时,创建该待传输文件信息。
[0072] 203、推送节点集群中的从推送节点向主推送节点发送从推送节点的心跳信息。
[0073] 其中,从推送节点的心跳信息可以包括:已保存的文件信息、节点状态信息等。该 节点状态信息可以包括该从推送节点已成功的任务、正在执行的任务、失败的任务以及是 否处于空闲状态等。
[0074] 由于推送节点的数量可能会很多,而推送节点的一般是用来向目的节点推送文 件,因此,为了避免推送节点间的冲突,可以在推送节点集群中选举主推送节点,该主推送 节点用于收集各个从推送节点的心跳信息,以获知该各个从推送节点所保存的文件信息、 当前节点状态等。且该主推送节点还可以获取各个目的节点集群或目的节点的心跳信息, 以获知各个目的节点集群的节点状态。进一步地,为了使得文件系统中的数据保持一致,主 推送节点还可以对文件系统中的文件传输进行调度和管理。
[0075] 推送节点集群选举主推送节点的过程可以包括:分布式协调系统为推送节点集群 中的每个推送节点分配临时节点序列号,多个推送节点根据临时节点序列号进行选举,确 定主推送节点。
[0076] 其中,分布式协调节点集群可以为该多个推送节点分配唯一的一个临时节点序列 号,当多个推送节点启动时,该多个推送节点中的每一个推送节点在分布式协调节点集群 中进行注册,使得多个推送节点中的每一个推送节点作为一个临时节点,并由分布式协调 节点集群分配一个临时节点序列号。对于多个推送节点中任一个推送节点,当该推送节点 得到自身的临时节点序列号时,根据自身的临时节点序列号,通过与该多个推送节点的临 时节点序列号进行对比,该推送节点确定该临时节点序列号是否最小,当该推送节点确定 该推送节点自身的临时节点序列号在该多个推送节点的临时节点序列号中是最小时,将该 推送节点确定为主推送节点。
[0077] 可选地,当多个推送节点根据临时节点序列号进行选举,确定主推送节点时,除了 主推送节点以外的其它推送节点都将作为从推送节点,该从推送节点中任一个从推送节点 将实时监测比该从推送节点的临时节点序列号小的其它推送节点,当检测到比该从推送节 点的临时节点序列号小的其它推送节点出现故障或不存在时,分布式协调节点集群向各个 推送节点发送通知信息,使得各个推送节点接收到该通知信息时,根据临时节点序列号再 次进行选举,重新确定主推送节点。其中,通知信息用于通知推送节点根据临时节点序列号 进行选举。
[0078] 图3是本发明实施例提供的一种推送节点选举示意图。参见图3,分布式协调节点 集群将多个推送节点中的每一个推送节点作为临时节点,并对该临时节点分配序列号,对 于多个推送节点中的任一个,该推送节点根据临时节点序列号判断是否包含有比自身的临 时节点序列号小的推送节点。当包含有比自身的临时节点序列号小的推送节点时,该推送 节点将作为从推送节点,并实时检测比自身的临时节点序列号小的推送节点的服务状态, 当被检测的推送节点的服务状态为故障时,该推送节点根据临时节点序列号继续判断是否 包含有比自身的临时节点序列号小的推送节点;当不包含有比自身的临时节点序列号小的 推送节点时,该推送节点将作为主推送节点。
[0079] 204、主推送节点获取分布式协调节点集群中的待传输文件信息。
[0080] 具体地,当主推送节点通过检测分布式协调节点集群中保存的文件信息,确定该 分布式协调节点集群中是否包含待传输文件信息,当该分布式协调节点集群中包含待传输 文件信息时,主推送节点获取该待传输文件信息。
[0081] 其中,待传输文件信息包括:待传输文件在文件存储节点集群中的保存地址、待传 输文件的大小、待传输文件标识、接收到该待传输文件的时间等。其中,待传输文件标识可 以为该待传输文件名称,也可以为该待传输文件的HASH值,如MD5值等,还可以是用户对该 待传输文件赋予的key值,本发明实施例对如何表不待传输文件标识不做限定。
[0082]当然,主推送节点获取分布式协调节点集群中的待传输文件信息也可以是在目的 节点向该主推送节点请求该待传输文件时,主推送节点根据目的节点发送的请求中携带的 待传输文件标识,获取分布式协调节点集群中保存的文件信息,当该分布式协调节点集群 中保存的文件信息中包含该待传输文件标识的文件时,主推送节点获取分布式协调节点集 群中的待传输文件信息。
[0083] 205、该主推送节点根据该待传输文件信息和至少一个从推送节点的心跳信息,确 定该至少一个从推送节点中保存有待传输文件,该心跳信息至少携带从推送节点所保存的 文件信息,该待传输文件为该至少一个从推送节点从文件存储节点集群中拉取。
[0084] 具体地,对于一个从推送节点,主推送节点根据该待传输文件信息,查找该从推送 节点上传的心跳信息中是否包含该待传输文件信息,当主推送节点确定该从推送节点上传 的心跳信息中包括该待传输文件信息时,该主推送节点确定该从推送节点中保存有待传输 文件。
[0085] 以待传输文件标识为MD5值为例,主推送节点根据获取到的待传输文件信息中的 MD5值,与从推送节点发送的已保存的文件信息中包含的MD5值进行对比,判断从推送节点 中已保存的文件信息中是否包含待传输文件的MD5值,当从推送节点发送的已保存的文件 信息中包含该待传输文件信息中的MD5值,主推送节点确定从推送节点中保存有待传输文 件。
[0086] 需要说明的是,从推送节点也会对分布式协调节点集群进行检测,以获知是否有 新的待传输文件信息,当从推送节点根据自身的文件信息和分布式协调节点集群上的文件 信息,确定此时分布式协调节点集群上具有新的待传输文件信息时,根据待传输文件信息, 从文件存储节点集群中获取该待传输文件。
[0087] 206、该主推送节点生成文件传输路径。
[0088] 具体地,主推送节点可以通过以下任一方式获取文件传输路径:
[0089] (1)所述主推送节点获取已生成的文件传输路径,当所述已生成的文件传输路径 中包括第一目的节点集群时,从所述已生成的文件传输路径中删除所述第一目的节点集 群,将删除后的文件传输路径作为当前文件传输路径,所述第一目的节点集群为所述主推 送节点在预设周期内未接收到心跳信息的目的节点集群。
[0090] 为了提高文件传输的速度,主推送节点可以直接通过已生成的文件传输路径对该 待传输文件进行传输。具体地,主推送节点获取已生成的文件传输路径,并根据该文件传输 路径中各个目的节点集群在预设周期内发送的心跳信息情况,确定在预设周期内是否接收 到该文件传输路径上所有目的节点集群的心跳信息,如果是,则将该文件传输路径获取为 当前文件传输路径,如果在预设周期内未接收到文件传输路径上某一目的节点集群的心跳 信息,主推送节点将该目的节点集群从该已生成的文件路径中删除,并将删除了该目的节 点集群的文件传输路径作为当前文件传输路径。
[0091] (2)所述主推送节点获取已生成的文件传输路径,当根据所述已生成的文件传输 路径中包括第二目的节点集群时,从所述已生成的文件传输路径中删除所述第二目的节点 集群,将删除后的文件传输路径作为当前文件传输路径,所述第二目的节点集群为当前正 在执行传输任务的目的节点集群。
[0092] 由于在已生成的文件传输路径中,可能会包含正在执行任务的目的节点集群,为 了避免重复传输或传输不成功等情况,主推送节点可以将正在执行任务的目的节点集群从 已生成的文件传输路径中删除。
[0093] (3)所述主推送节点根据目的节点的心跳信息,获取当前文件传输路径,所述文件 传输路径包括第三目的节点集群,所述第三目的节点为处于空闲状态的目的节点集群。 [0094] 具体地,主推送节点根据接收到的目的节点集群的心跳信息中的节点状态信息, 确定处于空闲状态的目的节点集群,主推送节点根据处于空闲状态的目的节点集群,生成 文件传输路径。
[0095] (4)所述主推送节点根据对所述待传输文件的数据请求,获取当前文件传输路径, 所述文件传输路径中的至少一个目的节点集群包括发送所述数据请求的目的节点集群。 [0096] 具体地,当目的节点集群中的任一个目的节点向主推送节点请求该待传输文件 时,主推送节点可以根据向主推送节点请求该待传输文件的目的节点,生成包含该目的节 点集群在内的文件传输路径。
[0097] 需要说明的是,上述文件传输路径生成方法可以叠加进行,如对于一条文件传输 路径来说,如果包含上述四种情况中的至少两种,可以根据实际情况,删除或添加某个目的 节点或目的节点集群,以便灵活的进行传输。
[0098] 在本发明实施例中,以至少一个从推送节点中均包括待传输文件为例进行说明, 而在实际场景中,该至少一个从推送节点中可能仅有一个或多个从推送节点中已保存有该 待传输文件,则对于这种情况,仅为已保存有该待传输文件的从推送节点生成文件传输路 径,由于各个从推送节点的物理地址不同,对于不同的从推送节点,其文件传输路径的起点 不同,且为了避免传输冲突,提高传输效率,不同从推送节点所对应的文件传输路径不同, 也即是,不同从推送节点用于向不同的目的节点集群发送待传输文件。
[0099] 207、主推送节点根据该至少一个从推送节点的节点状态信息,从该至少一个从推 送节点中获取一个处于空闲状态的从推送节点。
[0100] 具体地,从推送节点每隔预设周期向该主推送节点发送节点状态信息,当主推送 节点接收到该节点状态信息时,根据该节点状态信息,确定推送节点是否处于处于空闲状 态。
[0101] 如果从推送节点正在执行文件传输等任务,如果仍使用该从推送节点作为推送设 备,可能会影响文件传输的速度,使得待传输文件需要在从推送节点处进行排队等待,才能 够执行传输过程,因此,为了节约时间,提高传输效率,可以通过节点状态信息以确定当前 处于空闲状态的从推送节点。
[0102] 208、该主推送节点向该处于空闲状态的从推送节点发送该文件传输路径。
[0103] 在本发明实施例中,文件传输路径与从推送节点一一对应。
[0104] 209、当该从推送节点接收到该文件传输路径时,根据该文件传输路径将待传输文 件的数据包依次发送给目的节点。
[0105] 在传输过程中,从推送节点将得到的待传输文件拆分为多个数据包,该从推送节 点根据文件传输路径,将待传输文件的数据包依次发送给文件传输路径中的第一个目的节 点。
[0106] 210、对于文件传输路径中的任一个目的节点,当目的节点接收到待传输文件的数 据包时,将该数据包保存在内存中,将该数据包发送至文件传输路径中的该目的节点的下 一个目的节点中。
[0107] 具体地,当从推送节点将待传输文件的数据包发送至文件传输路径中的第一个目 的节点时,该目的节点将该数据包保存在内存中,并将该数据包发送至该文件传输路径中 的第二个目的节点,第二个目的节点在接收到数据包时,保存并将该数据包发送至第三个 目的节点,直到目的节点在接收到数据包且确定自身是文件传输路径上的最后一个节点时 结束。通过上述过程,使得当从推送服务器在发送数据包时,该文件传输路径中的每一个目 的节点几乎在同一时刻都在传递这个数据包,使得从推送服务器以及各个目的节点的负载 都很低,占用系统资源很小,不会对及其上运行的程序造成影响,而且能在相隔很短的时间 内同时完成数据传递,其相隔时刻通常为毫秒级。
[0108] 为了使该待传输文件的传输过程更加清楚明了,图4是本发明实施例提供的一种 文件传输示意图。参见图4,主推送节点将文件传输路径发送给保存有待传输文件、且处于 空闲状态的任一个从推送节点,该从推送节点根据文件传输路径将待传输文件的数据包发 送至目的节点集群中的目的节点A中,当目的节点A接收到该数据包时,将该数据包保存在 内存中,并将该数据包发送给该文件传输路径中目的节点A的下一个目的节点B,经过同样 的过程后,目的节点B将该数据包发送给目的节点C,依此该待传输文件将保存在文件传输 路径中的每一个目的节点中。
[0109] 需要说明的是,按照上述部署方案部署的分布式文件传输系统,推送节点集群与 目的节点集群部署在同一机房,每10个目的节点作为一个目的节点集群,每个推送节点下 发任务的单位为一个目的节点集群,也即是每个推送节点的文件传输路径上仅包括一个目 的节点集群,那么以传输200MB的数据文件为例,从推送客户端下发任务到文件完全下发 到目的节点集群,仅需20s。
[0110] 211、文件传输路径中的目的节点向主推送节点发送文件传输的进度信息。
[0111] 为了确定本次文件传输过程是否成功以及哪些目的节点成功接收到了待传输文 件,目的节点需要将接收待传输文件的进度反馈给主推送节点。具体地,当预设周期到达 时,目的节点将自身接收待传输文件的数据包的进度信息发送给主推送节点,以使得该主 推送节点确定待传输文件的进度。
[0112] 212、当主推送节点接收到该文件传输的进度信息时,将该文件传输的进度信息写 入数据库中。
[0113] 213、当数据库获取到该文件传输的进度信息时,将该文件传输的进度信息进行显 /_J、1 〇
[0114] 需要说明的是,该主推送节点还可以将从推送节点的心跳信息和目的节点的心跳 信息写入数据库中,当数据库获取到该从推送节点的心跳信息和目的节点的心跳信息时, 显示该从推送节点的心跳信息和目的节点的心跳信息,以向用户显示从推送节点中保存的 文件信息、节点的服务状态和目的节点接收到的文件信息、接收失败的文件信息、正在执行 的任务信息等。
[0115] 本发明实施例提供的方法,通过利用分布式协调节点集群维护待传输文件信息, 由推送节点集群根据待传输文件信息实现文件传输路径的生成以及传输的具体执行过程, 并通过由主推送节点负责生成文件传输路径,而由多个从推送节点从文件存储节点集群中 获取到待传输文件,再各自进行多路传输,从而发送至多个目的节点集群,避免了现有技术 中由于多个节点同时访问单一节点以进行文件传输而造成的单点瓶颈现象,且即使分布式 协调节点集群中任一个节点出现故障,也不会影响整个文件系统的正常运转。且在目的节 点间进行链式传输,使得从推送服务器以及各个目的节点的负载都很低,占用系统资源很 小,不会对及其上运行的程序造成影响,而且能在相隔很短的时间内同时完成数据传递。
[0116] 图5是本发明实施例提供的一种文件传输方法流程图,该方法流程包括:
[0117] 501、主推送节点获取分布式协调节点集群中的待传输文件信息。
[0118] 502、主推送节点根据该待传输文件信息和至少一个从推送节点的心跳信息,确定 该至少一个从推送节点中保存有待传输文件,该心跳信息至少携带从推送节点所保存的文 件信息,该待传输文件为该至少一个从推送节点从文件存储节点集群中拉取。
[0119] 503、该主推送节点生成文件传输路径,该文件传输路径包括至少一个目的节点集 群。
[0120] 504、该主推送节点向该至少一个从推送节点发送该文件传输路径,使得该至少一 个从推送节点根据该文件传输路径将该待传输文件发送至该至少一个目的节点集群;
[0121] 其中,每个目的节点集群包括多个目的节点。
[0122] 本发明实施例提供的方法,通过利用分布式协调节点集群维护待传输文件信息, 由推送节点集群根据待传输文件信息实现文件传输路径的生成以及传输的具体执行过程, 并通过由主推送节点负责生成文件传输路径,而由多个从推送节点从文件存储节点集群中 获取到待传输文件,再各自进行多路传输,从而发送至多个目的节点集群,避免了现有技术 中由于多个节点同时访问单一节点以进行文件传输而造成的单点瓶颈现象,且即使分布式 协调节点集群中任一个节点出现故障,也不会影响整个文件系统的正常运转。
[0123] 可选地,该主推送节点生成文件传输路径包括:
[0124] 该主推送节点获取已生成的文件传输路径,当该已生成的文件传输路径中包括第 一目的节点集群时,从该已生成的文件传输路径中删除该第一目的节点集群,将删除后的 文件传输路径作为当前文件传输路径,该第一目的节点集群为该主推送节点在预设周期内 未接收到心跳信息的目的节点集群;和/或,
[0125] 该主推送节点获取已生成的文件传输路径,当根据该已生成的文件传输路径中包 括第二目的节点集群时,从该已生成的文件传输路径中删除该第二目的节点集群,将删除 后的文件传输路径作为当前文件传输路径,该第二目的节点集群为当前正在执行传输任务 的目的节点集群;和/或,
[0126] 该主推送节点根据目的节点的心跳信息,获取当前文件传输路径,该文件传输路 径包括第三目的节点集群,该第三目的节点为处于空闲状态的目的节点集群;和/或,
[0127] 该主推送节点根据对该待传输文件的数据请求,获取当前文件传输路径,该文件 传输路径中的至少一个目的节点集群包括发送该数据请求的目的节点集群。
[0128] 可选地,该从推送节点的心跳信息还携带该从推送节点的节点状态信息,该主推 送节点向该至少一个从推送节点发送该文件传输路径包括:
[0129] 主推送节点根据该至少一个从推送节点的节点状态信息,从该至少一个从推送节 点中获取一个处于空闲状态的从推送节点;
[0130] 该主推送节点向该处于空闲状态的从推送节点发送该文件传输路径。
[0131] 可选地,该主推送节点由多个推送节点根据临时节点序列号选举得出,该临时节 点序列号由分布式协调系统分配。
[0132] 可选地,该待传输文件由该从推送节点在确定自身未保存有该待传输文件时,从 该文件存储节点集群中拉取得到。
[0133] 可选地,该主推送节点向该至少一个从推送节点发送该文件传输路径之后,该方 法还包括:
[0134] 该主推送节点接收该文件传输路径中多个目的节点发送的文件传输的进度信息; 该主推送节点将该文件传输的进度信息写入数据库中。
[0135] 图6是本发明实施例提供的一种文件传输方法流程图,该方法流程包括:
[0136] 601、目的节点接收待传输文件的数据包和文件传输路径。
[0137] 602、该目的节点将该待传输文件的数据包保存在内存中。
[0138] 603、该目的节点根据该文件传输路径,将该待传输文件的数据包发送至下一个目 的节点。
[0139] 本发明实施例提供的方法,通过目的节点接收并保存待传输文件的数据包,并根 据文件传输路径,将该待传输文件的数据包发送至其它目的节点,使得当从推送服务器在 发送数据包时,该文件传输路径中的每一个目的节点几乎在同一时刻都在传递这个数据 包,从而使得从推送服务器以及各个目的节点的负载都很低,占用系统资源很小,不会对及 其上运行的程序造成影响,大大提高了数据传递的速度。
[0140] 图7是本发明实施例提供的一种文件传输装置结构示意图。参见图7,该装置包 括:文件信息获取模块701、待传输文件确定模块702、路径生成模块703和路径发送模块 704。其中,文件信息获取模块701,用于获取分布式协调节点集群中的待传输文件信息;文 件信息获取模块701与待传输文件确定模块702相连接,待传输文件确定模块702,用于根 据分布式协调节点集群所创建的待传输文件信息和至少一个从推送节点的心跳信息,确定 该至少一个从推送节点中保存有待传输文件,该心跳信息至少携带从推送节点所保存的文 件信息,该待传输文件为该至少一个从推送节点从文件存储节点集群中拉取;待传输文件 确定模块702与路径生成模块703相连接,路径生成模块703,用于生成文件传输路径,该文 件传输路径包括至少一个目的节点集群;路径生成模块703与路径发送模块704相连接,路 径发送模块704,用于向该至少一个从推送节点发送该文件传输路径,使得该至少一个从推 送节点根据该文件传输路径将该待传输文件发送至该至少一个目的节点集群;其中,每个 目的节点集群包括多个目的节点。
[0141] 可选地,该路径生成模块703用于获取已生成的文件传输路径,当该已生成的文 件传输路径中包括第一目的节点集群时,从该已生成的文件传输路径中删除该第一目的节 点集群,将删除后的文件传输路径作为当前文件传输路径,该第一目的节点集群为在预设 周期内未接收到心跳信息的目的节点集群;和/或,
[0142] 该路径生成模块703用于获取已生成的文件传输路径,当根据该已生成的文件传 输路径中包括第二目的节点集群时,从该已生成的文件传输路径中删除该第二目的节点集 群,将删除后的文件传输路径作为当前文件传输路径,该第二目的节点集群为当前正在执 行传输任务的目的节点集群;和/或,
[0143] 该路径生成模块703用于根据目的节点的心跳信息,获取当前文件传输路径,该 文件传输路径包括第三目的节点集群,该第三目的节点为处于空闲状态的目的节点集群; 和/或,
[0144] 该路径生成模块703用于根据对该待传输文件的数据请求,获取当前文件传输路 径,该文件传输路径中的至少一个目的节点集群包括发送该数据请求的目的节点集群。
[0145] 可选地,该路径发送模块704用于当该从推送节点的心跳信息还携带该从推送节 点的节点状态信息时,根据该至少一个从推送节点的节点状态信息,从该至少一个从推送 节点中获取一个处于空闲状态的从推送节点,向该处于空闲状态的从推送节点发送该文件 传输路径。
[0146] 可选地,该主推送节点由多个推送节点根据临时节点序列号选举得出,该临时节 点序列号由分布式协调系统分配。
[0147] 可选地,该待传输文件由该从推送节点在确定自身未保存有该待传输文件时,从 该文件存储节点集群中拉取得到。
[0148] 可选地,该装置还包括:
[0149] 写入模块,用于接收该文件传输路径中多个目的节点发送的文件传输的进度信 息,将该文件传输的进度信息写入数据库中。
[0150] 综上所述,本发明实施例提供的装置,通过利用分布式协调节点集群维护待传输 文件信息,由推送节点集群根据待传输文件信息实现文件传输路径的生成以及传输的具体 执行过程,并通过由主推送节点负责生成文件传输路径,而由多个从推送节点从文件存储 节点集群中获取到待传输文件,再各自进行多路传输,从而发送至多个目的节点集群,避免 了现有技术中由于多个节点同时访问单一节点以进行文件传输而造成的单点瓶颈现象,且 即使分布式协调节点集群中任一个节点出现故障,也不会影响整个文件系统的正常运转。
[0151] 图8是本发明实施例提供的一种文件传输装置结构示意图。参见图8,该装置包 括:接收模块801、保存模块802和发送模块803。其中,接收模块801,用于接收待传输文件 的数据包和文件传输路径;接收模块801与保存模块802相连接,保存模块802,用于将该 待传输文件的数据包保存在内存中;保存模块802与发送模块803相连接,发送模块803, 用于根据该文件传输路径,将该待传输文件的数据包发送至下一个目的节点。
[0152] 综上所述,本发明实施例提供的装置,通过接收并保存待传输文件的数据包,并 根据文件传输路径,将该待传输文件的数据包发送至其它目的节点,使得当从推送服务器 在发送数据包时,该文件传输路径中的每一个目的节点几乎在同一时刻都在传递这个数据 包,从而使得从推送服务器以及各个目的节点的负载都很低,占用系统资源很小,不会对及 其上运行的程序造成影响,大大提高了数据传递的速度。
[0153] 需要说明的是:上述实施例提供的文件传输装置在文件传输时,仅以上述各功能 模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模 块完成,即将节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功 能。另外,上述实施例提供的文件传输装置和文件传输方法实施例属于同一构思,其具体实 现过程详见方法实施例,这里不再赘述。
[0154] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0155] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种分布式集群文件系统,其特征在于,包括: 分布式协调节点集群,所述分布式协调节点集群包括多个协调节点,所述多个协调节 点之间共享信息,所述分布式协调节点集群用于创建待传输文件信息; 文件存储节点集群,所述文件存储节点集群包括多个存储节点,所述文件存储节点集 群用于存储待传输文件; 推送节点集群,所述推送节点集群包括主推送节点和至少一个从推送节点,所述主推 送节点用于根据所述待传输文件信息和至少一个从推送节点的心跳信息,确定所述至少一 个从推送节点中保存有待传输文件,所述心跳信息至少携带从推送节点所保存的文件信 息,所述待传输文件为所述至少一个从推送节点从所述文件存储节点集群中拉取; 所述主推送节点还用于生成文件传输路径,所述文件传输路径包括至少一个目的节点 集群; 所述主推送节点还用于向所述至少一个从推送节点发送所述文件传输路径,使得所述 至少一个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个目的 节点集群; 所述至少一个目的节点集群,每个目的节点集群包括多个目的节点。
2. 根据权利要求1所述的系统,其特征在于, 所述主推送节点用于获取已生成的文件传输路径,当所述已生成的文件传输路径中包 括第一目的节点集群时,从所述已生成的文件传输路径中删除所述第一目的节点集群,将 删除后的文件传输路径作为当前文件传输路径,所述第一目的节点集群为所述主推送节点 在预设周期内未接收到心跳信息的目的节点集群;和/或, 所述主推送节点用于获取已生成的文件传输路径,当根据所述已生成的文件传输路 径中包括第二目的节点集群时,从所述已生成的文件传输路径中删除所述第二目的节点集 群,将删除后的文件传输路径作为当前文件传输路径,所述第二目的节点集群为当前正在 执行传输任务的目的节点集群;和/或, 所述主推送节点用于根据目的节点的心跳信息,获取当前文件传输路径,所述文件传 输路径包括第三目的节点集群,所述第三目的节点为处于空闲状态的目的节点集群;和/ 或, 所述主推送节点用于根据对所述待传输文件的数据请求,获取当前文件传输路径,所 述文件传输路径中的至少一个目的节点集群包括发送所述数据请求的目的节点集群。
3. 根据权利要求1所述的系统,其特征在于,所述从推送节点的心跳信息还携带所述 从推送节点的节点状态信息, 所述主推送节点用于根据所述至少一个从推送节点的节点状态信息,从所述至少一个 从推送节点中获取一个处于空闲状态的从推送节点; 所述主推送节点向所述处于空闲状态的从推送节点发送所述文件传输路径。
4. 根据权利要求1所述的系统,其特征在于,所述主推送节点由多个推送节点根据临 时节点序列号选举得出,所述临时节点序列号由分布式协调系统分配。
5. 根据权利要求1所述的系统,其特征在于,所述从推送节点用于检测分布式协调节 点集群所创建的所述待传输文件信息,当根据所述待传输信息确定所述从推送节点中不包 括所述待传输文件时,从所述文件存储节点集群中拉取所述待传输文件。
6. 根据权利要求1所述的系统,其特征在于,所述系统还包括数据库, 所述主推送节点还用于接收所述文件传输路径中多个目的节点发送的文件传输的进 度信息,并将所述文件传输的进度信息写入数据库中。
7. 根据权利要求1所述的系统,其特征在于,所述目的节点用于当接收到待传输文件 的数据包时,向所述文件传输路径中的下一个目的节点发送接收到的数据包;或, 所述目的节点用于当接收到待传输文件的数据包时,向与所述目的节点属于同一个目 的节点集群的其他目的节点中的任一个发送接收到的数据包。
8. -种文件传输方法,其特征在于,所述方法包括: 主推送节点获取分布式协调节点集群中的待传输文件信息; 主推送节点根据所述待传输文件信息和至少一个从推送节点的心跳信息,确定所述至 少一个从推送节点中保存有待传输文件,所述心跳信息至少携带从推送节点所保存的文件 信息,所述待传输文件为所述至少一个从推送节点从文件存储节点集群中拉取; 所述主推送节点生成文件传输路径,所述文件传输路径包括至少一个目的节点集群; 所述主推送节点向所述至少一个从推送节点发送所述文件传输路径,使得所述至少一 个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个目的节点集 群; 其中,每个目的节点集群包括多个目的节点。
9. 根据权利要求8所述的方法,其特征在于,所述主推送节点生成文件传输路径包括: 所述主推送节点获取已生成的文件传输路径,当所述已生成的文件传输路径中包括第 一目的节点集群时,从所述已生成的文件传输路径中删除所述第一目的节点集群,将删除 后的文件传输路径作为当前文件传输路径,所述第一目的节点集群为所述主推送节点在预 设周期内未接收到心跳信息的目的节点集群;和/或, 所述主推送节点获取已生成的文件传输路径,当根据所述已生成的文件传输路径中包 括第二目的节点集群时,从所述已生成的文件传输路径中删除所述第二目的节点集群,将 删除后的文件传输路径作为当前文件传输路径,所述第二目的节点集群为当前正在执行传 输任务的目的节点集群;和/或, 所述主推送节点根据目的节点的心跳信息,获取当前文件传输路径,所述文件传输路 径包括第三目的节点集群,所述第三目的节点为处于空闲状态的目的节点集群;和/或, 所述主推送节点根据对所述待传输文件的数据请求,获取当前文件传输路径,所述文 件传输路径中的至少一个目的节点集群包括发送所述数据请求的目的节点集群。
10. 根据权利要求8所述的方法,其特征在于,所述从推送节点的心跳信息还携带所述 从推送节点的节点状态信息,所述主推送节点向所述至少一个从推送节点发送所述文件传 输路径包括: 主推送节点根据所述至少一个从推送节点的节点状态信息,从所述至少一个从推送节 点中获取一个处于空闲状态的从推送节点; 所述主推送节点向所述处于空闲状态的从推送节点发送所述文件传输路径。
11. 根据权利要求8所述的方法,其特征在于,所述主推送节点由多个推送节点根据临 时节点序列号选举得出,所述临时节点序列号由分布式协调系统分配。
12. 根据权利要求8所述的方法,其特征在于,所述待传输文件由所述从推送节点在确 定自身未保存有所述待传输文件时,从所述文件存储节点集群中拉取得到。
13. 根据权利要求8所述的方法,其特征在于,所述主推送节点向所述至少一个从推送 节点发送所述文件传输路径之后,所述方法还包括: 所述主推送节点接收所述文件传输路径中多个目的节点发送的文件传输的进度信息; 所述主推送节点将所述文件传输的进度信息写入数据库中。
14. 一种文件传输方法,其特征在于,所述方法包括: 目的节点接收待传输文件的数据包和文件传输路径; 所述目的节点将所述待传输文件的数据包保存在内存中; 所述目的节点根据所述文件传输路径,将所述待传输文件的数据包发送至下一个目的 节点。
15. -种文件传输装置,其特征在于,所述装置包括: 文件信息获取模块,用于获取分布式协调节点集群中的待传输文件信息; 待传输文件确定模块,用于根据分布式协调节点集群所创建的待传输文件信息和至少 一个从推送节点的心跳信息,确定所述至少一个从推送节点中保存有待传输文件,所述心 跳信息至少携带从推送节点所保存的文件信息,所述待传输文件为所述至少一个从推送节 点从文件存储节点集群中拉取; 路径生成模块,用于生成文件传输路径,所述文件传输路径包括至少一个目的节点集 群; 路径发送模块,用于向所述至少一个从推送节点发送所述文件传输路径,使得所述至 少一个从推送节点根据所述文件传输路径将所述待传输文件发送至所述至少一个目的节 点集群;其中,每个目的节点集群包括多个目的节点。
16. 根据权利要求15所述的装置,其特征在于,所述路径生成模块用于获取已生成的 文件传输路径,当所述已生成的文件传输路径中包括第一目的节点集群时,从所述已生成 的文件传输路径中删除所述第一目的节点集群,将删除后的文件传输路径作为当前文件传 输路径,所述第一目的节点集群为在预设周期内未接收到心跳信息的目的节点集群;和/ 或, 所述路径生成模块用于获取已生成的文件传输路径,当根据所述已生成的文件传输路 径中包括第二目的节点集群时,从所述已生成的文件传输路径中删除所述第二目的节点集 群,将删除后的文件传输路径作为当前文件传输路径,所述第二目的节点集群为当前正在 执行传输任务的目的节点集群;和/或, 所述路径生成模块用于根据目的节点的心跳信息,获取当前文件传输路径,所述文件 传输路径包括第三目的节点集群,所述第三目的节点为处于空闲状态的目的节点集群;和 /或, 所述路径生成模块用于根据对所述待传输文件的数据请求,获取当前文件传输路径, 所述文件传输路径中的至少一个目的节点集群包括发送所述数据请求的目的节点集群。
17. 根据权利要求15所述的装置,其特征在于,所述路径发送模块用于当所述从推送 节点的心跳信息还携带所述从推送节点的节点状态信息时,根据所述至少一个从推送节点 的节点状态信息,从所述至少一个从推送节点中获取一个处于空闲状态的从推送节点,向 所述处于空闲状态的从推送节点发送所述文件传输路径。
18. 根据权利要求15所述的装置,其特征在于,所述主推送节点由多个推送节点根据 临时节点序列号选举得出,所述临时节点序列号由分布式协调系统分配。
19. 根据权利要求15所述的装置,其特征在于,所述待传输文件由所述从推送节点在 确定自身未保存有所述待传输文件时,从所述文件存储节点集群中拉取得到。
20. 根据权利要求15所述的装置,其特征在于,所述装置还包括: 写入模块,用于接收所述文件传输路径中多个目的节点发送的文件传输的进度信息, 将所述文件传输的进度信息写入数据库中。
21. -种文件传输装置,其特征在于,所述装置包括: 接收模块,用于接收待传输文件的数据包和文件传输路径; 保存模块,用于将所述待传输文件的数据包保存在内存中; 发送模块,用于根据所述文件传输路径,将所述待传输文件的数据包发送至下一个目 的节点。
【文档编号】H04L29/08GK104092719SQ201310695160
【公开日】2014年10月8日 申请日期:2013年12月17日 优先权日:2013年12月17日
【发明者】张磊 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1