一种文本文件并行上传方法及装置转让专利

申请号 : CN201510917625.9

文献号 : CN105610899B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 房体盈

申请人 : 浪潮(北京)电子信息产业有限公司

摘要 :

本发明公开了一种文本文件并行上传方法及装置,其中,该方法包括:将待上传文本文件切分成N个数据块,N为大于1的整数;启动N个子线程,并利用N个子线程按照一一对应关系将N个数据块同时上传至分布式文件系统。本申请公开的技术特征中,将待上传文本文件切分为N个数据块,进而利用N个子线程将N个数据块同时进行上传,其中,子线程与工作节点一一对应,因此,本申请为利用N个工作节点将N个数据块同时进行上传,与现有技术中通过一个工作节点将整个待上传文本文件进行上传相比,本申请利用N个工作节点实现数据块的上传,能够在充分利用整个集群的性能的同时达到较快的上传速度。

权利要求 :

1.一种文本文件并行上传方法,其特征在于,包括:将待上传文本文件切分成N个数据块,N为大于1的整数;

启动N个子线程,并利用所述N个子线程按照一一对应关系将所述N个数据块同时上传至分布式文件系统;

将待上传文本文件切分成N个数据块之前,还包括:确定所述待上传文本文件的数据量,并判断所述待上传文本文件的数据量是否大于阈值,如果是,则将所述待上传文本文件切分成N个数据块,如果否,则利用一个子线程将所述待上传文本文件上传至所述分布式文件系统;

将所述N个数据块上传至所述分布式文件系统之后,还包括:发送保存指令至所述分布式文件系统,以指示所述分布式文件系统将获取的所述N个数据块按照一一对应关系分别保存为N个独立文件;

发送保存指令至所述分布式文件系统之后,还包括:输出提示信息,所述提示信息包含有每个所述独立文件的位置信息和名称信息以及每个所述独立文件中的数据量。

2.一种文本文件并行上传装置,其特征在于,包括:切分模块,用于将待上传文本文件切分成N个数据块,N为大于1的整数;

上传模块,用于启动N个子线程,并利用所述N个子线程按照一一对应关系将所述N个数据块同时上传至分布式文件系统;

所述装置还包括:

判断模块,用于确定所述待上传文本文件的数据量,并判断所述待上传文本文件的数据量是否大于阈值,如果是,则将所述待上传文本文件切分成N个数据块,如果否,则利用一个子线程将所述待上传文本文件上传至所述分布式文件系统;

指示保存模块,用于发送保存指令至所述分布式文件系统,以指示所述分布式文件系统将获取的所述N个数据块按照一一对应关系分别保存为N个独立文件;

输出模块,用于输出提示信息,所述提示信息包含有每个所述独立文件的位置信息和名称信息以及每个所述独立文件中的数据量。

说明书 :

一种文本文件并行上传方法及装置

技术领域

[0001] 本发明涉及大数据存储技术领域,更具体地说,涉及一种文本文件并行上传方法及装置。

背景技术

[0002] 伴随着计算机网络的发展,海量数据的时代已经到来;对于大数据集的存储、分析、管理及挖掘,传统技术(包括传统关系数据库)是无法胜任的,如何最快最好的分析和理解这些数据是当务之急。而在现在已拥有的技术和工具中,最成熟也最成功的一套大数据解决方案为Hadoop文件存储计算框架及构架于其上的相关组件。
[0003] 现有技术中的HDFS(Hadoop Distributed File System,分布式文件系统),对于HDFS的客户端来说,当某一用户利用一个客户端向HDFS中写数据时,在整个集群中,只有对应的一个工作节点工作,其他工作节点则是空闲的,此时,无法最大限度利用整个集群的性能;且,发明人发现,这种上传方式造成数据上传速度较慢。
[0004] 综上所述,现有技术中将数据写入HDFS时存在无法充分利用整个集群的性能且数据上传速度较慢的问题。

发明内容

[0005] 本发明的目的是提供一种文本文件并行上传方法及装置,以解决现有技术中将数据写入HDFS时存在的无法充分利用整个集群的性能且数据上传速度较慢的问题。
[0006] 为了实现上述目的,本发明提供如下技术方案:
[0007] 一种文本文件并行上传方法,包括:
[0008] 将待上传文本文件切分成N个数据块,N为大于1的整数;
[0009] 启动N个子线程,并利用所述N个子线程按照一一对应关系将所述N个数据块同时上传至分布式文件系统。
[0010] 优选的,将所述N个数据块上传至所述分布式文件系统之后,还包括:
[0011] 发送保存指令至所述分布式文件系统,以指示所述分布式文件系统将获取的所述N个数据块按照一一对应关系分别保存为N个独立文件。
[0012] 优选的,发送保存指令至所述分布式文件系统之后,还包括:
[0013] 输出提示信息,所述提示信息包含有每个所述独立文件的位置信息和名称信息以及每个所述独立文件中的数据量。
[0014] 优选的,将待上传文本文件切分成N个数据块之前,还包括:
[0015] 确定所述待上传文本文件的数据量,并判断所述待上传文本文件的数据量是否大于阈值,如果是,则将所述待上传文本文件切分成N个数据块,如果否,则利用一个子线程将所述待上传文本文件上传至所述分布式文件系统。
[0016] 一种文本文件并行上传装置,包括:
[0017] 切分模块,用于将待上传文本文件切分成N个数据块,N为大于1的整数;
[0018] 上传模块,用于启动N个子线程,并利用所述N个子线程按照一一对应关系将所述N个数据块同时上传至分布式文件系统。
[0019] 优选的,还包括:
[0020] 指示保存模块,用于发送保存指令至所述分布式文件系统,以指示所述分布式文件系统将获取的所述N个数据块按照一一对应关系分别保存为N个独立文件。
[0021] 优选的,还包括:
[0022] 输出模块,用于输出提示信息,所述提示信息包含有每个所述独立文件的位置信息和名称信息以及每个所述独立文件中的数据量。
[0023] 优选的,还包括:
[0024] 判断模块,用于确定所述待上传文本文件的数据量,并判断所述待上传文本文件的数据量是否大于阈值,如果是,则将所述待上传文本文件切分成N个数据块,如果否,则利用一个子线程将所述待上传文本文件上传至所述分布式文件系统。
[0025] 本发明提供了一种文本文件并行上传方法及装置,其中,该方法包括:将待上传文本文件切分成N个数据块,N为大于1的整数;启动N个子线程,并利用所述N个子线程按照一一对应关系将所述N个数据块同时上传至分布式文件系统。本申请公开的技术特征中,将待上传文本文件切分为N个数据块,进而利用N个子线程将N个数据块同时进行上传,其中,子线程与工作节点一一对应,因此,本申请为利用N个工作节点将N个数据块同时进行上传,与现有技术中通过一个工作节点将整个待上传文本文件进行上传相比,本申请利用N个工作节点实现数据块的上传,充分利用了整个集群的性能,且由于数据块的数据量小于整个待上传文本文件的数据量,对应的,上传数据块的时间小于上传整个待上传文本文件的时间,因此,本申请公开的上述技术方案能够在充分利用整个集群的性能的同时达到较快的上传速度。

附图说明

[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0027] 图1为本发明实施例提供的一种文本文件并行上传方法的流程图;
[0028] 图2为本发明实施例提供的一种文本文件并行上传方法中当N取5时的上传示意图;
[0029] 图3为本发明实施例提供的一种文本文件并行上传装置的结构示意图。

具体实施方式

[0030] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031] 请参阅图1,其示出了本发明实施例提供的一种文本文件并行上传方法的流程图,可以包括以下步骤:
[0032] S11:将待上传文本文件切分成N个数据块,N为大于1的整数。
[0033] 其中,N的具体取值可以根据实际需要进行确定,通常情况下,N在小于工作节点总数的前提下,取的值越大,有益效果越明显。
[0034] S12:启动N个子线程,并利用N个子线程按照一一对应关系将N个数据块同时上传至分布式文件系统。
[0035] 通过启动N个子线程,按照一一对应关系将N个数据块上传至分布式文件系统(HDFS),从而完成文本文件的并行上传。
[0036] 本申请公开的技术特征中,将待上传文本文件切分为N个数据块,进而利用N个子线程将N个数据块同时进行上传,其中,子线程与工作节点一一对应,因此,本申请为利用N个工作节点将N个数据块同时进行上传,与现有技术中通过一个工作节点将整个待上传文本文件进行上传相比,本申请利用N个工作节点实现数据块的上传,充分利用了整个集群的性能,且由于数据块的数据量小于整个待上传文本文件的数据量,对应的,上传数据块的时间小于上传整个待上传文本文件的时间,因此,本申请公开的上述技术方案能够在充分利用整个集群的性能的同时达到较快的上传速度,进一步提高上传效率。
[0037] 另外,需要说明的是,工作节点可以指客户端,对应的,现有技术为利用一台主机中的一个客户端完成待上传文本文件的上传,而本发明是利用同一台主机中的N个客户端完成待上传文本文件的上传,每个客户端按照一一对应的关系负责一个数据库的上传,从而最大限度的利用整个集群的性能。
[0038] 上述实施例提供的一种文本文件并行上传方法中,将N个数据块上传至分布式文件系统之后,还可以包括:
[0039] 发送保存指令至分布式文件系统,以指示分布式文件系统将获取的N个数据块按照一一对应关系分别保存为N个独立文件。
[0040] 需要说明的是,通过保存指令,指示分布式文件系统将获取的N个数据块分别保存为N个独立文件,从而能够方便后期查询,当然,也可以将N个独立文件整合为一个大的独立文件,进而实现对于同一待文本文件的信息的整合,有利于后期利用。
[0041] 具体来说,上述步骤可以是:主线程(MainPut)将待上传文本文件切分成N个数据块,并计算出N个待上传数据块的起止字节流,进而启动N个子线程(BlockPut)并行上传。而任一子线程将对应数据块上传至分布式文件系统,具体可以包括:打开一个待上传文件输入流(InputStream),该待上传文件输入流定位到与数据块对应的起始字节流,进而在分布式文件系统上创建一个独立文件,将对应数据块的起止字节流写入到该独立文件中,从而完成数据块的上传。其中,当N取5时,本发明实施例提供的一种文本文件并行上传方法的示意图如图2所示。
[0042] 上述实施例提供的一种文本文件并行上传方法中,发送保存指令至分布式文件系统之后,还可以包括:
[0043] 输出提示信息,提示信息包含有每个独立文件的位置信息和名称信息以及每个独立文件中的数据量。
[0044] 需要说明的是,当将N个数据块保存为N个独立文件时,提示信息包含每个独立文件的上述信息,当将N个独立文件进一步整合为一个大的独立文件时,提示信息包含这个大的独立文件的上述信息,其中,提示信息包含独立文件的位置信息及名称信息,是为了在工作人员需要对其进行查询时,可以通过位置信息及名称信息实现独立文件的快速定位,提示信息包含独立文件中的数据量,是为了在工作人员需要对其进行查询时,可以将查询到的独立文件中的数据量与独立文件中包含的数据量进行比对,进而通过判断数据量是否有误确定数据是否发现丢失等情况,当然,提示信息包含的信息还可以包含其他根据实际需要设置的信息,均在本发明的保护范围之内。
[0045] 上述实施例提供的一种文本文件并行上传方法中,将待上传文本文件切分成N个数据块之前,还可以包括:
[0046] 确定待上传文本文件的数据量,并判断待上传文本文件的数据量是否大于阈值,如果是,则将待上传文本文件切分成N个数据块,如果否,则利用一个子线程将待上传文本文件上传至分布式文件系统。
[0047] 其中,阈值可以根据实际需要进行确定,通常将其设置为较小的值,由于当待上传文本文件所包含的数据量过小,即待上传文本文件的数据量小于阈值时,仅仅利用一个子线程即可快速实现其上传工作,那么此时则无需对该待上传文本文件进行切分,直接进行上传即可,从而使得本发明实施例提供的一种文本文件并行上传方法更具灵活性,进一步提高了其上传效率。
[0048] 与上述实施例相对应,本发明实施例还提供了一种文本文件并行上传装置,如图3所示,可以包括:
[0049] 切分模块11,用于将待上传文本文件切分成N个数据块,N为大于1的整数;
[0050] 上传模块12,用于启动N个子线程,并利用N个子线程按照一一对应关系将N个数据块同时上传至分布式文件系统。
[0051] 本申请公开的技术特征中,将待上传文本文件切分为N个数据块,进而利用N个子线程将N个数据块同时进行上传,其中,子线程与工作节点一一对应,因此,本申请为利用N个工作节点将N个数据块同时进行上传,与现有技术中通过一个工作节点将整个待上传文本文件进行上传相比,本申请利用N个工作节点实现数据块的上传,充分利用了整个集群的性能,且由于数据块的数据量小于整个待上传文本文件的数据量,对应的,上传数据块的时间小于上传整个待上传文本文件的时间,因此,本申请公开的上述技术方案能够在充分利用整个集群的性能的同时达到较快的上传速度,进一步提高上传效率。
[0052] 上述实施例提供的一种文本文件并行上传装置中,还可以包括:
[0053] 指示保存模块,用于发送保存指令至分布式文件系统,以指示分布式文件系统将获取的N个数据块分别保存为N个独立文件。
[0054] 上述实施例提供的一种文本文件并行上传装置中,还可以包括:
[0055] 输出模块,用于输出提示信息,提示信息包含有独立文件中的数据量及独立文件的位置信息及名称信息。
[0056] 上述实施例提供的一种文本文件并行上传装置中,还可以包括:
[0057] 判断模块,用于确定待上传文本文件的数据量,并判断待上传文本文件的数据量是否大于阈值,如果是,则将待上传文本文件切分成N个数据块,如果否,则利用一个子线程将待上传文本文件上传至分布式文件系统。
[0058] 本发明实施例提供的一种文本文件并行上传装置中相关部分的说明请参见本发明实施例提供的一种文本文件并行上传方法中对应部分的详细说明,在此不再赘述。
[0059] 对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。