一种上传文件的方法与装置与流程

文档序号:11199380阅读:411来源:国知局
一种上传文件的方法与装置与流程

本发明涉及数据处理技术领域,特别是涉及一种上传文件的方法与装置。



背景技术:

分布式系统基本架构(hadoop)是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop的体系结构主要是通过分布式存储系统(hdfs)来实现分布式存储的底层支持,通过mapreduce实现分布或并行任务处理的程序支持。

亚马逊对象存储系统(amazons3)是一个公开的服务,web应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。amazons3提供一个restfulapi以编程方式实现与该服务的交互。

hadoop+amazons3对接,将amazons3对象存储系统高稳定性、高扩展性、高冗余性的存储特点与hadoop中mapreduce强大的并行任务处理能力相融合,搭建出更加高效、快捷、易用的大数据平台。

目前hadoop+amazons3对接框架下上传文件的流程是:1、hadoop调用put命令上传本地文件到amazons3对象存储系统对应bucket中的临时文件。2、文件上传成功后,amazons3调用rename机制,将数据从临时文件读出,并重新写入到和hadoop上传文件同名的文件里。从以上上传文件流程可以看出,上传成功一个文件实际上要读取文件数据两次,效率自然不高。

可见,如何提升上传文件的速率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种上传文件的方法与装置,可以提升上传文件的速率。

为解决上述技术问题,本发明实施例提供一种上传文件的方法,包括:

amazons3对象存储系统接收客户端发送的目标文件;所述目标文件有其对应的文件名称;

将所述目标文件中的数据写入到临时文件;

当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。

可选的,还包括:

所述amazons3对象存储系统向所述客户端发送上传成功的响应信息。

可选的,还包括:

判断接收的所述目标文件是否完整;

若否,则向所述客户端发送获取所述目标文件的请求信息。

本发明实施例还提供了一种上传文件的装置,包括接收单元、写入单元和重命名单元,

所述接收单元,用于接收客户端发送的目标文件;所述目标文件有其对应的文件名称;

所述写入单元,用于将所述目标文件中的数据写入到临时文件;

当完成所述数据的写入后,则触发所述重命名单元,所述重命名单元,用于利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。

可选的,还包括发送单元,

所述发送单元,用于向所述客户端发送上传成功的响应信息。

可选的,还包括判断单元,

所述判断单元,用于判断接收的所述目标文件是否完整;

若否,则触发所述发送单元,所述发送单元还用于向所述客户端发送获取所述目标文件的请求信息。

由上述技术方案可以看出,amazons3对象存储系统在接收客户端发送的目标文件后,将所述目标文件中的数据写入到临时文件;其中,所述目标文件有其对应的文件名称;当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。该操作过程无需再从临时文件读取数据重新写入新文件,而是通过直接修改临时文件的名称,更新元数据信息的方式,实现目标文件的上传,提高了上传文件的效率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种上传文件的方法的流程图;

图2为本发明实施例提供的一种上传文件的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

传统方式中,hadoop+amazons3对接框架下上传文件时,amazons3对象存储系统首先将接收到的本地文件的数据写入到临时文件中,然后再将临时文件中的数据读取到一个新文件中,该新文件是与本地文件同名的一个文件,当完成数据的写入后,即将临时文件中的数据完全写入到新文件后,该临时文件会被删除。该过程需要读取文件数据两次,导致文件上传的效率较低。

为此,本发明实施例提供了一种上传文件的方法与装置,amazons3对象存储系统接收客户端发送的目标文件,将该目标文件中的数据写入到临时文件。当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。通过直接修改临时文件的名称,更新元数据信息的方式,实现目标文件的上传,提高了上传文件的效率。

接下来,详细介绍本发明实施例所提供的一种上传文件的方法。图1为本发明实施例提供的一种上传文件的方法的流程图,该方法包括:

s101:amazons3对象存储系统接收客户端发送的目标文件。

客户端接收到用户输入的hadoopput命令后,会将对应的目标文件上传至amazons3对象存储系统。

其中,所述目标文件有其对应的文件名称。

s102:将所述目标文件中的数据写入到临时文件。

客户端在向amazons3对象存储系统传输目标文件时,amazons3对象存储系统会将目标文件中的数据写入到临时文件中。

其中,该临时文件的名称与目标文件的名称不相同。在具体实现中,往往会以目标文件的名称加上特定后缀作为临时文件的名称,例如,目标文件的名称为“file”,相应的,amazons3对象存储系统会将临时文件的名称命名为“file.copying”。

s103:当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。

当目标文件中的数据完全写入到临时文件后,amazons3对象存储系统将临时文件的名称修改成目标文件原本对应的文件名称。并且系统会自动更新对应的元数据信息,从而完成临时文件的重命名。

由上述技术方案可以看出,amazons3对象存储系统在接收客户端发送的目标文件后,将所述目标文件中的数据写入到临时文件;其中,所述目标文件有其对应的文件名称;当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。该操作过程无需再从临时文件读取数据重新写入新文件,而是直接修改临时文件的名称,更新元数据信息的方式,实现目标文件的上传,提高了上传文件的效率。

当amazons3对象存储系统完成对临时文件的重命名后,则说明该目标文件已经成功上传至amazons3对象存储系统,此时,所述amazons3对象存储系统可以向所述客户端发送上传成功的响应信息。以便于使用该客户端的用户可以及时获知目标文件已经成功上传。

考虑到受网络等因素的影响,可能会存在amazons3对象存储系统接收的目标文件数据不完整的现象。为了避免该种情况的发生,amazons3对象存储系统可以判断接收的所述目标文件是否完整;若否,则向所述客户端发送获取所述目标文件的请求信息。通过该判断过程可以有效的保证文件上传的顺利进行。

图2为本发明实施例提供的一种上传文件的装置的结构示意图,包括接收单元21、写入单元22和重命名单元23,

所述接收单元21,用于接收客户端发送的目标文件;所述目标文件有其对应的文件名称;

所述写入单元22,用于将所述目标文件中的数据写入到临时文件;

当完成所述数据的写入后,则触发所述重命名单元23,所述重命名单元23,用于利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。

可选的,还包括发送单元,

所述发送单元,用于向所述客户端发送上传成功的响应信息。

可选的,还包括判断单元,

所述判断单元,用于判断接收的所述目标文件是否完整;

若否,则触发所述发送单元,所述发送单元还用于向所述客户端发送获取所述目标文件的请求信息。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,amazons3对象存储系统在接收客户端发送的目标文件后,将所述目标文件中的数据写入到临时文件;其中,所述目标文件有其对应的文件名称;当完成所述数据的写入后,利用rename机制,将所述临时文件重命名为所述目标文件对应的文件名称,并更新amazons3相关的元数据信息。该操作过程无需再从临时文件读取数据重新写入新文件,而是直接修改临时文件的名称,更新元数据信息的方式,实现目标文件的上传,提高了上传文件的效率。

以上对本发明实施例所提供的一种上传文件的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1