一种多线程数据上传方法.pdf

上传人:00****42 文档编号:1896317 上传时间:2018-07-23 格式:PDF 页数:7 大小:843.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410722793.8

申请日:

2014.12.02

公开号:

CN104408147A

公开日:

2015.03.11

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F17/30申请日:20141202|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

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

发明人:

金洪殿; 辛国茂; 刘伟; 卢军佐

地址:

100085北京市海淀区上地信息路2号2-1号C栋1层

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司11262

代理人:

王丹; 李丹

PDF下载: PDF下载
内容摘要

提出一种多线程数据上传方法,所述方法配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;基于配置的所述信息和确定的所述数据范围执行多线程并行数据上传。所述方法将一个大的文本文件分为多个文件并行上传到HDFS系统中,从而提高写入速度,大大降低了文件上传的时间。

权利要求书

权利要求书
1.  一种多线程数据上传方法,其特征在于,包括:
S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;
S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;
S3:基于步骤S1配置的所述信息和步骤S2确定的所述数据范围执行多线程并行数据上传。

2.  如权利要求1所述的方法,其特征在于:
所述步骤S2中所述的数据范围包括每个线程需要上传的文件数据的开始位置偏移量和结束位置偏移量。

3.  如权利要求2所述的方法,其特征在于:
所述多线程并行数据上传具体包括如下步骤:
S31:所述线程首先判断数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;
S32:所述线程将所述开始位置偏移量处到所述结束位置偏移量处的数据上传到HDFS系统,并执行步骤S34;
S33:所述线程从所述开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到所述结束位置偏移量处的数据上传到HDFS系统;
S34:从所述结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程结束。

说明书

说明书一种多线程数据上传方法
技术领域
本发明涉及信息存储技术领域,具体涉及一种多线程数据上传方法。
背景技术
随着人类社会全面进入信息时代,数据成为与水、石油同等重要的战略资源。通过挖掘海量数据,能够使政府和企业的运行决策建立在更加科学的依据基础上,提高决策效率、危机应对能力和公共服务水平。大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策的资讯。
Hadoop Distributed File System(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。运行在HDFS之上的程序有很大量的数据集。典型的HDFS文件大小是TB级别,所以,HDFS被调整成支持大文件,应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
HDFS上的文件来源有很多途径,文件服务器(比如NFS)中的已有文件是一种非常重要的来源。例如,银行业务系统中从数据库中卸载的数据表,每天会生成一个增量文件到文件服务器,要对这些文件进行挖掘分析,首先要把其上传到HDFS中。有些分析可能需要的文件很大。传统的方法使用单机上传文件,一方面文件服务器的带宽没有充分利用,另一方面HDFS各数 据节点没有被充分利用,所以这种方法用于上传海量数据往往耗时过久而无法现实应用。因此,需要提出一种新的方案,充分利用文件服务器的带宽,提高文件上传效率。
发明内容
本技发明提供了一种多线程数据上传方法,充分考虑HDFS的特性,充分利用资源(带宽、磁盘IO等),极大提高了海量数据上传的效率并保证文件行原子性。所述方法包括:
S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;
S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;
S3:基于步骤S1配置的所述信息和步骤S2确定的所述数据范围执行多线程并行数据上传。
特别地:
所述步骤S2中所述的数据范围包括每个线程需要上传的文件数据的开始位置偏移量和结束位置偏移量。
特别地:
所述多线程并行数据上传具体包括如下步骤:
S31:所述线程首先判断数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;
S32:所述线程将所述开始位置偏移量处到所述结束位置偏移量处的数据上传到HDFS系统,并执行步骤S34;
S33:所述线程从所述开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到所述结束位置偏移量处的数据上传到HDFS系统;
S34:从所述结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程结束。
本发明的有益效果是:将一个大的文本文件分为多个文件并行上传到HDFS系统中,从而提高写入速度,大大降低了文件上传的时间。
附图说明
附图1为本发明提出的多线程数据上传方法流程图。
附图2为本发明提出的基于多线程的保障HDFS文件行原子性的数据上传方法的流程图。
具体实施方式
下面将结合附图详细描述本发明提出的多线程数据上传方法,所述方法能够保障HDFS文件行原子性。
本发明主要考虑可以在保障数据行原子性的基础上并行的上传数据,充分利用网络I/O和系统资源。每个线程上传的数据量默认为:文件大小/线程总数。每个线程上传文件开始前,先判断读取的开始偏移量第一个字符是否是换行符,如果是不是换行符,则按字节向后读取,直至读取到换行符,然后从换行符后开始上传文件内容,如果开始偏移量为0,则不需要判断是否是换行符,读取数据并开始上传。当线程上传文件的内容达到分配的内容时,需要继续判断结束偏移量后的下一个字符是否是换行符,如不是换行符,则 需要继续上传,直至最后一个字符是换行符。这就实现了每个线程在上传文件内容的时候,开始时向后移动,结束时也向后移动,从而保证了文件行原子性。
参见附图1,本发明提出的多线程数据上传方法,所述方法包括:
S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;
S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;
S3:基于步骤S1配置的信息和步骤S2确定的所述数据范围执行多线程并行数据上传。
其中所述的数据范围包括每个线程需要上传数据的开始位置偏移量和结束位置偏移量。
参见附图2,其示出了为了保障上传文件的行原子性,每个线程所执行的数据上传步骤流程,其中包括:
S31:线程首先判断其数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;
本步骤中,如果数据上传开始位置偏移量为0,则表明该线程上传数据的开始位置为整个文件的开始处。
S32:所述线程将上传开始位置偏移量处到上传结束位置偏移量处的数据上传到HDFS系统,并执行步骤S34;
S33:所述线程从开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到结束位置偏移量处的数据上传到 HDFS系统;
此步骤中,线程从开始位置偏移量处向后依次读取一个字节的数据,每读取一次就判断该字节数据是否为换行符,如果不是则顺序读取下一个字节的数据再执行判断,直至读取到的一个字节的数据为换行符为止。
S34:从结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程结束。
此步骤中,线程从结束位置偏移量处向后依次读取一个字节的数据,每读取一次就判断该字节数据是否为换行符,如果不是则上传该数据,并顺序读取下一个字节的数据再执行判断和上传步骤,直至读取到的一个字节的数据为换行符为止。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

一种多线程数据上传方法.pdf_第1页
第1页 / 共7页
一种多线程数据上传方法.pdf_第2页
第2页 / 共7页
一种多线程数据上传方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种多线程数据上传方法.pdf》由会员分享,可在线阅读,更多相关《一种多线程数据上传方法.pdf(7页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410722793.8(22)申请日 2014.12.02G06F 17/30(2006.01)(71)申请人浪潮(北京)电子信息产业有限公司地址 100085 北京市海淀区上地信息路2号2-1号C栋1层(72)发明人金洪殿 辛国茂 刘伟 卢军佐(74)专利代理机构北京安信方达知识产权代理有限公司 11262代理人王丹 李丹(54) 发明名称一种多线程数据上传方法(57) 摘要提出一种多线程数据上传方法,所述方法配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;根据所述需要上传的文。

2、件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;基于配置的所述信息和确定的所述数据范围执行多线程并行数据上传。所述方法将一个大的文本文件分为多个文件并行上传到HDFS系统中,从而提高写入速度,大大降低了文件上传的时间。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书3页 附图2页(10)申请公布号 CN 104408147 A(43)申请公布日 2015.03.11CN 104408147 A1/1页21.一种多线程数据上传方法,其特征在于,包括:S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信。

3、息以及可以使用的线程数目信息;S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;S3:基于步骤S1配置的所述信息和步骤S2确定的所述数据范围执行多线程并行数据上传。2.如权利要求1所述的方法,其特征在于:所述步骤S2中所述的数据范围包括每个线程需要上传的文件数据的开始位置偏移量和结束位置偏移量。3.如权利要求2所述的方法,其特征在于:所述多线程并行数据上传具体包括如下步骤:S31:所述线程首先判断数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;S32:所述线程将所述开始位置偏移量处到所述结束位置偏移量处的数据上传到HDFS。

4、系统,并执行步骤S34;S33:所述线程从所述开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到所述结束位置偏移量处的数据上传到HDFS系统;S34:从所述结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程结束。权 利 要 求 书CN 104408147 A1/3页3一种多线程数据上传方法技术领域0001 本发明涉及信息存储技术领域,具体涉及一种多线程数据上传方法。背景技术0002 随着人类社会全面进入信息时代,数据成为与水、石油同等重要的战略资源。通过挖掘海量数据,能够使政府和企业的运行决策建立在更加科学的依据基础上,提高决策效。

5、率、危机应对能力和公共服务水平。大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策的资讯。0003 Hadoop Distributed File System(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。运行在HDFS之上的程序有很大量的数据集。典型的HDFS文件大小是TB级别,所以,HDFS被调整成支持大文件,应该。

6、提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。0004 HDFS上的文件来源有很多途径,文件服务器(比如NFS)中的已有文件是一种非常重要的来源。例如,银行业务系统中从数据库中卸载的数据表,每天会生成一个增量文件到文件服务器,要对这些文件进行挖掘分析,首先要把其上传到HDFS中。有些分析可能需要的文件很大。传统的方法使用单机上传文件,一方面文件服务器的带宽没有充分利用,另一方面HDFS各数据节点没有被充分利用,所以这种方法用于上传海量数据往往耗时过久而无法现实应用。因此,需要提出一种新的方案,充分利用文件服务器的带宽,提高文件上传效率。发明内容0005 。

7、本技发明提供了一种多线程数据上传方法,充分考虑HDFS的特性,充分利用资源(带宽、磁盘IO等),极大提高了海量数据上传的效率并保证文件行原子性。所述方法包括:0006 S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息;0007 S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;0008 S3:基于步骤S1配置的所述信息和步骤S2确定的所述数据范围执行多线程并行数据上传。0009 特别地:0010 所述步骤S2中所述的数据范围包括每个线程需要上传的文件数据的开始位置偏移量和结束位置偏移量。说 明 。

8、书CN 104408147 A2/3页40011 特别地:0012 所述多线程并行数据上传具体包括如下步骤:0013 S31:所述线程首先判断数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;0014 S32:所述线程将所述开始位置偏移量处到所述结束位置偏移量处的数据上传到HDFS系统,并执行步骤S34;0015 S33:所述线程从所述开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到所述结束位置偏移量处的数据上传到HDFS系统;0016 S34:从所述结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程。

9、结束。0017 本发明的有益效果是:将一个大的文本文件分为多个文件并行上传到HDFS系统中,从而提高写入速度,大大降低了文件上传的时间。附图说明0018 附图1为本发明提出的多线程数据上传方法流程图。0019 附图2为本发明提出的基于多线程的保障HDFS文件行原子性的数据上传方法的流程图。具体实施方式0020 下面将结合附图详细描述本发明提出的多线程数据上传方法,所述方法能够保障HDFS文件行原子性。0021 本发明主要考虑可以在保障数据行原子性的基础上并行的上传数据,充分利用网络I/O和系统资源。每个线程上传的数据量默认为:文件大小/线程总数。每个线程上传文件开始前,先判断读取的开始偏移量第。

10、一个字符是否是换行符,如果是不是换行符,则按字节向后读取,直至读取到换行符,然后从换行符后开始上传文件内容,如果开始偏移量为0,则不需要判断是否是换行符,读取数据并开始上传。当线程上传文件的内容达到分配的内容时,需要继续判断结束偏移量后的下一个字符是否是换行符,如不是换行符,则需要继续上传,直至最后一个字符是换行符。这就实现了每个线程在上传文件内容的时候,开始时向后移动,结束时也向后移动,从而保证了文件行原子性。0022 参见附图1,本发明提出的多线程数据上传方法,所述方法包括:0023 S1:配置需要上传的文件所在源路径信息、文件需要上传到HDFS系统的目的路径信息以及可以使用的线程数目信息。

11、;0024 S2:根据所述需要上传的文件的数据量和配置的所述线程数目信息确定每个线程需要处理的数据范围;0025 S3:基于步骤S1配置的信息和步骤S2确定的所述数据范围执行多线程并行数据上传。0026 其中所述的数据范围包括每个线程需要上传数据的开始位置偏移量和结束位置偏移量。0027 参见附图2,其示出了为了保障上传文件的行原子性,每个线程所执行的数据上传说 明 书CN 104408147 A3/3页5步骤流程,其中包括:0028 S31:线程首先判断其数据上传开始位置偏移量是否为0,如果是,则执行步骤S32,否则执行步骤S33;0029 本步骤中,如果数据上传开始位置偏移量为0,则表明该。

12、线程上传数据的开始位置为整个文件的开始处。0030 S32:所述线程将上传开始位置偏移量处到上传结束位置偏移量处的数据上传到HDFS系统,并执行步骤S34;0031 S33:所述线程从开始位置偏移量处向后依次读取每一字节数据,直至读取到的数据为换行符,将所述换行符后到结束位置偏移量处的数据上传到HDFS系统;0032 此步骤中,线程从开始位置偏移量处向后依次读取一个字节的数据,每读取一次就判断该字节数据是否为换行符,如果不是则顺序读取下一个字节的数据再执行判断,直至读取到的一个字节的数据为换行符为止。0033 S34:从结束位置偏移量处向后依次读取每一字节数据并上传,直至所读取到的数据为换行符,流程结束。0034 此步骤中,线程从结束位置偏移量处向后依次读取一个字节的数据,每读取一次就判断该字节数据是否为换行符,如果不是则上传该数据,并顺序读取下一个字节的数据再执行判断和上传步骤,直至读取到的一个字节的数据为换行符为止。0035 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。说 明 书CN 104408147 A1/2页6图1说 明 书 附 图CN 104408147 A2/2页7图2说 明 书 附 图CN 104408147 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1