CN108491163A - 一种大数据处理方法、装置和存储介质 - Google Patents
一种大数据处理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN108491163A CN108491163A CN201810224585.3A CN201810224585A CN108491163A CN 108491163 A CN108491163 A CN 108491163A CN 201810224585 A CN201810224585 A CN 201810224585A CN 108491163 A CN108491163 A CN 108491163A
- Authority
- CN
- China
- Prior art keywords
- file
- file destination
- read
- interface
- agreement
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种大数据处理方法、装置和存储介质;本发明实施例在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及建立与云对象存储设备之间的连接,再然后,基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中;该方案不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种大数据处理方法、装置和存储介质。
背景技术
在信息社会里,大数据(big data)处理作为一个最基础的服务,扮演着是尤为重要的角色。现有对大数据进行处理的技术有多种,Hadoop便是其中一种。
Hadoop是一个能够对大数据进行分布式处理的软件框架,而基于Hadoop所建立的存储系统则称为Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)。HDFS能提供高吞吐量的数据访问,且有着高容错性(fault-tolerant)的特点,但是,HDFS并不擅长存储小文件,因为每个文件最少需要一个块(block),而每个块的元数据都会在管理者节点(name node)上占用内存,如果存在这样大量的小文件,则需要占用大量管理者节点内存,因此,现有技术又提出了一种可以高效地将小文件放入HDFS块中的文件格式——Hadoop档案(Archive)。Hadoop Archive可以通过特定的程序,周期性地将多个小文件打包成一个后缀为“.har”的文件(称为har文件),然后,再对har文件进行存储,从而在保证能够对har文件中的数据进行透明的访问的同时,达到减少管理者节点内存使用的目的。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于现有方案需要周期性对小文件进行离线合并成har文件,因此,对于文件的处理容量有一定局限;此外,虽然能够对har文件进行透明访问,但是,如若需要修改,则需重新创建har文件,操作较为繁琐,灵活性和处理效率均不高。
发明内容
本发明实施例提供一种大数据处理方法、装置和存储介质,不仅无需对小文件进行离线合并,文件处理容量较大,而且,文件的查看和修改操作也较为简便,可以大大提高灵活性和处理效率。
本发明实施例还提供一种大数据处理方法,包括:
获取数据写入请求,所述数据写入请求携带目标文件标识和目标文件内容;
根据所述数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议;
根据所述对象存储协议,从所述文件写入接口集合中选择与所述目标文件标识对应的文件写入接口,得到目标写入接口;
根据所述对象存储协议建立与云对象存储设备之间的连接;
基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象(Object)为存储单位存储在所述云对象存储设备中。
本发明实施例还提供一种大数据处理装置,包括:
获取单元,用于获取数据写入请求,所述数据写入请求携带目标文件标识和目标文件内容;
配置单元,用于根据所述数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议;
适配单元,用于根据所述对象存储协议,从所述文件写入接口集合中选择与所述目标文件标识对应的文件写入接口,得到目标写入接口;
连接建立单元,用于根据所述对象存储协议建立与云对象存储设备之间的连接;
存储单元,用于基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中。
可选的,在一些实施例中,所述配置单元可以包括调用子单元和设置子单元,如下:
所述调用子单元,可以用于根据所述数据写入请求获取Hadoop接口,通过所述Hadoop接口调用文件写入接口集合;
所述设置子单元,可以用于将使用的文件系统协议设置为对象存储协议。
可选的,在一些实施例中,所述适配单元,具体可以用于根据所述对象存储协议调用对象存储插件,通过所述对象存储插件,在所述文件写入接口集合中为所述目标文件标识适配文件写入接口,得到目标写入接口。
可选的,在一些实施例中,所述连接建立单元,具体可以用于通过所述对象存储插件,获取预设的对象存储信息,所述对象存储信息包括存储对象的用户名、容器名称、以及容器所在的区域信息,根据所述对象存储信息建立与云对象存储设备之间的连接。
可选的,在一些实施例中,所述存储单元,具体可以用于通过所述目标写入接口获取目标文件的写入路径,基于所述连接,根据所述写入路径将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中。
可选的,在一些实施例中,该大数据处理装置还可以包括读取单元和生成单元,如下:
所述获取单元,还可以用于接收数据读取请求,所述数据读取请求携带目标文件标识;
所述读取单元,可以用于根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象;
所述生成单元,可以用于根据读取到的对象生成目标文件。
可选的,在一些实施例中,该大数据处理装置还可以包括判断单元,如下:
所述判断单元,可以用于根据所述数据读取请求确定本地缓存是否存在所述目标文件标识对应的对象;
所述读取单元,具体可以用于在判断单元确定本地缓存存在目标文件标识对应的对象时,根据所述数据读取请求,从本地缓存中读取与所述目标文件标识对应的对象;在判断单元确定本地缓存不存在目标文件标识对应的对象时,根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象。
可选的,在一些实施例中,所述读取单元,具体可以用于根据所述数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议,根据所述对象存储协议,从所述文件读取接口集合中选择与所述目标文件标识对应的文件读取接口,得到目标读取接口,基于所述连接,通过所述目标读取接口从所述云对象存储设备中读取与所述目标文件标识对应的对象。
可选的,在一些实施例中,所述读取单元,具体可以用于根据所述数据读取请求获取Hadoop接口,通过所述Hadoop接口调用文件读取接口集合。
可选的,在一些实施例中,所述读取单元,具体可以用于根据所述对象存储协议调用对象存储插件,通过所述对象存储插件,在所述文件读取接口集合中为所述目标文件标识适配文件读取接口,得到目标读取接口。
可选的,在一些实施例中,所述读取单元,具体可以用于通过所述目标读取接口获取目标文件的读取路径和读取范围,基于所述连接,根据所述读取路径和读取范围从所述云对象存储设备中读取与所述目标文件标识对应的对象,并将读取到的对象保存在本地缓存中。
可选的,在一些实施例中,所述获取单元,具体可以用于接收数据转移指令,所述数据转移指令指示目标文件标识、源文件系统协议和目标文件系统协议,所述目标文件系统协议为对象存储协议,根据源文件系统协议确定源文件系统,并从所述源文件系统获取所述目标文件标识对应的目标文件内容,根据所述对象存储协议、目标文件标识和目标文件内容生成数据写入请求。
本发明实施例在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及建立与云对象存储设备之间的连接,再然后,基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中;由于该方案主要是以对象为存储单位来对文件进行存储,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构(即一个对象不会属于另一个对象的下一级),因此,在存储前,无需如现有技术般周期性地对需要存储的小文件进行离线合并,可以大大提高文件处理容量;而且,在存储后,还可以直接对对象进行透明访问和修改,操作更为简便;也就是说,该方案相对于现有的Hadoop而言,不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的大数据处理方法的场景示意图;
图1b是本发明实施例提供的大数据处理方法的流程图;
图1c是本发明实施例提供的大数据处理方法的另一流程图;
图2a是本发明实施例提供的大数据处理方法的架构图;
图2b是本发明实施例提供的大数据处理方法中数据写入的流称图;
图2c是本发明实施例提供的大数据处理方法中数据写入的框架图;
图2d是本发明实施例提供的大数据处理方法中数据读取的流程图;
图2e是本发明实施例提供的大数据处理方法中数据读取的框架图;
图3a是本发明实施例提供的大数据处理装置的结构示意图;
图3b是本发明实施例提供的大数据处理装置的另一结构示意图;
图4是本发明实施例提供的业务服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种大数据处理方法、装置和存储介质。
该大数据处理装置具体可以集成在服务器如业务服务器等设备中。例如,以该大数据处理装置集成在业务服务器中为例,参见图1a,业务服务器在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的目标写入接口,以及建立与云对象存储设备之间的连接,最后,基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。此后,在需要对该目标文件进行读取时,业务服务器便可以根据数据读取请求中携带的目标文件标识,从该云对象存储设备中读取与对应的对象,以生成目标文件。
由于存储目标文件时主要是以对象为存储单位,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构,因此,不仅文件处理容量大,访问和修改简便快速灵活,而且,也便于存储空间的扩展,使得存储容量可以无局限,较适用于大数据的存储。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
实施例一、
本实施例将从大数据处理装置的角度进行描述,该大数据处理装置具体可以服务器,比如业务服务器等设备中。
一种大数据处理方法,包括:获取携带目标文件标识和目标文件内容的数据写入请求,根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,得到目标写入接口,根据该对象存储协议建立与云对象存储设备之间的连接,基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
如图1b所示,该大数据处理方法的具体流程可以如下:
101、获取数据写入请求,该数据写入请求携带目标文件标识和目标文件内容等信息。
其中,对于数据写入请求而言,目标文件指的是需要写入的文件;目标文件标识指的是可以用于识别目标文件的信息,比如文件名;而目标文件内容指的是该目标文件里所记载的数据。
其中,该数据写入请求的获取方式可以有多种,比如,可以由运维人员触发生成,或者,也可以接收其他设备发送的数据写入请求,等等。
可选的,写入的数据(即目标文件)可以由运维人员进行输入,也可以是从其他的存储设备上迁移而来的,若从其他的存储设备上迁移而来的,则该步骤“获取数据写入请求”具体可以包括:
接收数据转移指令,该数据转移指令指示目标文件标识、源文件系统协议和目标文件系统协议,该目标文件系统协议为对象存储协议;根据源文件系统协议确定源文件系统,并从该源文件系统获取该目标文件标识对应的目标文件内容;根据该对象存储协议、目标文件标识和目标文件内容生成数据写入请求。
例如,具体可以根据该对象存储协议获取对应的消息数据格式,然后,根据该消息数据格式生成数据写入请求,比如在该数据写入请求中携带目标文件标识和目标文件内容,等等。
其中,源文件系统协议指的是源文件系统在存储数据时所使用的文件系统协议,所谓源文件系统指的是该需要转移的数据(即目标文件)原本所在的存储设备;而目标文件系统协议指的是目标文件系统在存储数据时所使用的文件系统协议,所谓目标文件系统指的是该需要转移的数据期望迁移到的存储设备,在本发明实施例中,源文件系统协议可以根据实际应用的需求而定,比如,具体可以为Hadoop的相关存储协议(简称为Hadoop协议),而该目标文件系统协议在本发明实施例中,均为对象存储协议,比如云对象存储(COS,Cloud Object Storage)协议等,为了描述方便,在本发明实施例中,将均以该对象存储协议具体为COS协议为例进行说明。
102、根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议。
例如,具体可以根据该数据写入请求获取Hadoop接口,然后,通过该Hadoop接口调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议。
其中,文件写入接口集合中包括多个文件写入接口。而该对象存储协议可以根据实际应用的需求进行设置,比如,具体可以为COS协议。
103、根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,得到目标写入接口;例如,具体可以如下:
根据该对象存储协议调用对象存储插件,通过该对象存储插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口。
比如,具体可以根据COS协议调用COS插件,通过该COS插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口,等等。
104、根据该对象存储协议建立与云对象存储设备之间的连接;例如,具体可以如下:
通过该对象存储插件,获取预设的对象存储信息,根据该对象存储信息建立与云对象存储设备之间的连接(即大数据处理装置与云对象存储设备之间的连接)。
比如,以该对象存储插件为COS插件为例,则具体可以通过COS插件获取预设的对象存储信息,然后,根据该对象存储信息建立该大数据处理装置与云对象存储设备之间的连接。
其中,该对象存储信息可以包括存储对象的用户名、容器名称、以及容器所在的区域信息等。
需说明的是,在本发明实施例中,云对象存储设备指的是对象存储系统(Object-Based Storage System)所在的云设备。对象存储,也称为基于对象(Object)的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。换而言之,对象是对象存储系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合;与文件类似,对象包含数据,与文件不同的是,对象在一个层结构中不会再有层级结构,每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。对象的大小可以不同,可以包含整个数据结构,如文件、数据库表项等。
105、基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
例如,具体可以通过该目标写入接口获取目标文件的写入路径,然后,基于该连接,根据该写入路径将该目标文件内容以对象为存储单位存储在该云对象存储设备中,等等。
可选的,若写入失败,则可以重新执行步骤105,或者,也可以返回执行102或103,具体可根据实际应用的需求进行设置。此外,还可以生成相应的失败提示信息,以便用户可以及时获知并进行调整。
可选的,在将该目标文件写入云对象存储设备之后,还可以从该云对象存储设备中读取该目标文件。即如图1c所示,在步骤“基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中”之后,该大数据处理方法还可以包括步骤106~108,如下:
106、接收数据读取请求,该数据读取请求携带目标文件标识等信息。
其中,对于数据读取请求而言,目标文件指的是需要读取的文件;目标文件标识指的是可以用于识别目标文件的信息,比如文件名等。
比如,如果在步骤101~105中,已将目标文件F写入了云对象存储设备,则此时,可以在该数据读取请求中携带目标文件F的标识,以请求从该云对象存储设备中获取目标文件F,等等。
其中,该数据读取请求的获取方式可以有多种,比如,可以由运维人员触发生成,或者,也可以接收其他设备发送的数据读取请求,等等。
107、根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象;例如,具体可以如下:
(1)根据该数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议;
例如,具体可以根据该数据读取请求获取Hadoop接口,然后,通过该Hadoop接口调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议。
其中,文件读取接口集合中包括多个文件读取接口。而该对象存储协议可以根据实际应用的需求进行设置,比如,具体可以为COS协议。
(2)根据该对象存储协议,从该文件读取接口集合中选择与该目标文件标识对应的文件读取接口,得到目标读取接口。
例如,具体可以根据该对象存储协议调用对象存储插件,通过该对象存储插件,在该文件读取接口集合中为该目标文件标识适配文件读取接口,得到目标读取接口。
比如,具体可以根据COS协议调用COS插件,通过该COS插件,在该文件读取接口集合中为该目标文件标识适配文件读取接口,得到目标读取接口,等等。
(3)基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象。
例如,具体可以通过该目标读取接口获取目标文件的读取路径和读取范围,基于该连接,根据该读取路径和读取范围从该云对象存储设备中读取与该目标文件标识对应的对象,并将读取到的对象保存在本地缓存中。
可选的,由于数据读取一般会有热点效应,上层往往会集中在某个范围内读取,因此,为了避免每次读取都需要通过网络请求该云对象存储设备,降低读取数据的平均延迟,可以在本地缓存一定尺寸的临时缓存(cache)文件,并记录其在原始文件中的偏移参数(如offset函数,用于指示方法返回或设置匹配元素相对于文档的偏移(位置)),如果读取的偏移参数超过这个缓存文件的范围,则可以从该云对象存储设备中拉取一个新的缓存文件,保存在本地,以供读取。也就是说,在步骤“根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象(即步骤107)”之前,该大数据处理方法还可以包括:
根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象,若存在,则根据该数据读取请求,从本地缓存中读取与该目标文件标识对应的对象;若不存在,则执行根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象的步骤。
其中,从本地缓存中读取与该目标文件标识对应的对象的操作可以如下:
根据该数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件读取接口集合中选择与该目标文件标识对应的文件读取接口,得到目标读取接口,通过该目标读取接口从本地缓存中读取与该目标文件标识对应的对象。
比如,具体可以通过该目标读取接口获取目标文件的读取路径和读取范围(range),然后,根据该读取路径和读取范围从本地缓存中读取与该目标文件标识对应的对象。
需说明的是,若读取范围表明所需要读取的对象范围已超出本地缓存所保存的对象范围,则可以直接从云对象存储设备中读取该超出范围的对象,或者也可以从云对象存储设备中拉取包含该超出范围的对象的数据(比如拉取指定大小的缓存文件),保存在本地缓存中,然后,再从本地缓存中读取该超出范围的对象。
可选的,由于不管是从本地缓存中读取所需的对象还是从云对象存储设备中读取所需的对象,都需要设置对象存储协议、以及确定目标读取接口,因此,该“根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象”的步骤也可以在“得到目标读取接口”之后才执行,这样,若确定本地缓存存在该目标文件标识对应的对象,则可以直接根据该目标读取接口从本地缓存中读取与该目标文件标识对应的对象,反之,若确定本地缓存不存在该目标文件标识对应的对象,则可以根据该目标读取接口从云对象存储设备中读取与该目标文件标识对应的对象。
此外,还需说明的是,若在读取该目标文件时,该大数据处理装置和云对象存储设备之间的连接已经断开,则需要重新建立该连接,即在步骤“基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象”之前,该大数据处理方法还可以包括:
若该连接已断开,则根据该对象存储协议建立与云对象存储设备之间的连接。
例如,以该对象存储插件为COS插件为例,则具体可以通过COS插件获取预设的对象存储信息,比如,获取存储对象的用户名、容器名称、以及容器所在的区域信息等,然后,根据该对象存储信息建立该大数据处理装置与云对象存储设备之间的连接。
可选的,若读取失败,则可以重新执行步骤107。此外,还可以生成相应的失败提示信息,以便用户可以及时获知并进行调整。
108、根据读取到的对象生成目标文件。
例如,具体可以根据预设的数据格式,将读取到的对象重构成目标文件。
可选的,在读取到对象之后,还可以根据实际应用的需求对读取到的对象进行修改,然后,再将修改后的对象保存到云对象存储设备中。需说明的是,由于存储的基本单位为“对象”,因此,可以直接进行修改并保存即可,而无需重建har文件(现有方案在修改时,需要重建har文件)。
由上可知,本实施例在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及建立与云对象存储设备之间的连接,再然后,基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中;由于该方案主要是以对象为存储单位来对文件进行存储,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构(即一个对象不会属于另一个对象的下一级),因此,在存储前,无需如现有技术般周期性地对需要存储的小文件进行离线合并,可以大大提高文件处理容量;而且,在存储后,还可以直接对对象进行透明访问和修改,操作更为简便;也就是说,该方案相对于现有的Hadoop而言,不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
实施例二、
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该大数据处理装置具体集成在业务服务器中、源文件系统协议为Hadoop协议、且目标文件系统协议具体为COS协议为例进行说明。
如图2a所示,在该业务服务器中,可以包括多个数据处理层,其中,最上层为基于Hadoop的大数据套件,其次为Hadoop系统,再者为存储适配层,而最底层则为存储层。在基于Hadoop的大数据套件中,可以包括多个引擎,比如Hive和/或Spark等,该引擎可以对下一层“Hadoop系统”中的Hadoop接口进行调用,并通过Hadoop接口调用文件写入/读取接口集合,该引擎还可以对使用的文件系统协议进行设置,比如设置为COS协议;此后,Hadoop系统可以根据设置的COS协议调用COS插件,以及通过该COS插件在“存储适配层”适配文件写入/读取接口,然后,通过适配得到的文件写入/读取接口,在存储层对对象(即COS对象)进行写入或读取,比如可以以对象为存储单位将目标文件内容写入云对象存储设备中,或从云对象存储设备或本地缓存中读取对象,并根据读取的对象生成目标文件,等等。
需说明的是,具体实施时,可以使用JAVA开发,通过源码或者麦文(Maven,一种软件项目管理工具)坐标的方式将图2a中的架构,以JAR包的形式导入到现有业务服务器的系统架构中,若将现有业务服务器的系统架构所使用的文件系统称为源文件系统,比如以该源文件系统为Hadoop系统为例,则当该JAR包导入Hadoop系统所在的静态链接库(lib库)并加载后,即可利用Hadoop系统处理COS的数据,即此时业务服务器相当于拥有了一个具有无限存储空间(COS的存储空间可以无上限)的Hadoop系统。
基于上述架构,以下将分别从数据写入和读取两个方面对该大数据处理流程进行详细说明。
(一)数据写入;
如图2b所示,一种大数据处理方法,具体流程可以如下:
A201、业务服务器获取数据写入请求,该数据写入请求携带目标文件标识和目标文件内容等信息。
其中,该目标文件标识可以包括文件名或其他可以识别该文件的信息;而目标文件内容指的是该目标文件里所记载的数据。此外,该数据写入请求的获取方式可以有多种,比如,可以由运维人员触发生成,或者,也可以接收其他设备发送的数据写入请求,等等。
可选的,写入的数据(目标文件)可以由运维人员进行输入,也可以是从其他的存储设备上迁移而来的,若从其他的存储设备上迁移而来的,则步骤“业务服务器获取数据写入请求”具体可以包括步骤:
(1)业务服务器接收数据转移指令,该数据转移指令指示目标文件标识、源文件系统协议和目标文件系统协议。
比如,在本实施例中,该源文件系统协议具体可以为Hadoop协议,而该目标文件系统协议可以为COS协议,即在该数据转移指令中,可以携带相应的指示信息,指示源文件系统协议为Hadoop协议,且目标文件系统协议为COS协议。
(2)业务服务器根据源文件系统协议确定源文件系统,并从该源文件系统获取该目标文件标识对应的目标文件内容。
例如,若源文件系统协议为Hadoop协议,则此时,可以确定源文件系统为Hadoop系统,并从Hadoop系统中获取该目标文件标识对应的目标文件内容;比如,若目标文件标识为文件名,且文件名为“F”,则此时,可以从Hadoop系统中获取文件名为“F”的文件的内容,作为目标文件内容。
(3)业务服务器根据该对象存储协议、目标文件标识和目标文件内容生成数据写入请求。
例如,业务服务器可以根据该对象存储协议获取对应的消息数据格式,根据该消息数据格式将目标文件标识和目标文件内容添加至相应的字段中,以生成数据写入请求,等等。
A202、业务服务器根据该数据写入请求调用Hadoop接口,然后执行步骤A203。
例如,参见图2c,业务服务器在接收到数据写入请求后,可以启动Hive或Spark后,然后由Hive或Spark根据该数据写入请求调用Hadoop接口,然后执行步骤A203。
A203、业务服务器通过Hadoop接口调用文件写入接口集合,并将使用的文件系统协议设置为COS协议,然后执行步骤A204。其中,文件写入接口集合中包括多个文件写入接口。
例如,参见图2c,具体可以由Hive或Spark通过Hadoop接口调用文件写入接口集合,并将使用的文件系统协议设置为COS协议,然后执行步骤A204。
A204、业务服务器根据COS协议调用COS插件,并执行步骤A205,比如,可参见图2c。
A205、业务服务器通过该COS插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口。
例如,还是以该目标文件标识为文件名“F”,且该文件写入接口集合中包括文件写入接口1、文件写入接口2、文件写入接口3和文件写入接口4为例,则步骤A205具体可以如下:
业务服务器可以通过该COS插件,在该文件写入接口集合中为文件名“F”适配文件写入接口,比如,如果与文件名“F”适配的文件写入接口为“文件写入接口3”,则此时,可以将文件写入接口3确定为目标写入接口,以此类推,等等。
其中,适配的策略可以根据实际应用的需求进行灵活设置,比如,可以根据当前文件写入接口的使用情况、或者根据该目标文件标识所对应的文件的文件类型来进行适配,等等,在此不再赘述。
A206、业务服务器建立该业务服务器与云对象存储设备之间的连接。
例如,业务服务器可以通过该COS插件,获取预设的对象存储信息,比如获取存储对象的用户名、容器名称、以及容器所在的区域信息等,然后,根据该对象存储信息建立该业务服务器与云对象存储设备之间的连接。
A207、业务服务器通过该目标写入接口获取目标文件的写入路径,基于该连接,根据该写入路径将该目标文件内容以对象为存储单位存储在该云对象存储设备中,进而实现COS对象存储,比如,参见图2c。
例如,还是以目标文件为文件“F”为例,则此时,业务服务器可以通过该目标写入接口获取文件“F”的写入路径,根据该写入路径确定存储位置,然后,基于步骤A206所建立的连接(即业务服务器与云对象存储设备之间的连接),将该目标文件内容以对象为存储单位存储在该云对象存储设备相应的存储位置(即确定的存储位置)中。
在将目标文件内容写入云对象存储设备之后,可以返回执行步骤A201,以继续对其他目标文件进行写入。
可选的,若写入失败,则可以重新执行步骤A207,或者,也可以返回执行A203或A205,具体可根据实际应用的需求进行设置。此外,还可以生成相应的失败提示信息,以便用户可以及时获知并进行调整。
(二)数据读取;
如图2d所示,一种大数据处理方法,具体流程可以如下:
B201、业务服务器接收数据读取请求,该数据读取请求携带目标文件标识等信息。
其中,该目标文件标识可以包括文件名或其他可以识别该文件的信息。
比如,如果在步骤A201~A207中,已将目标文件“F”写入了云对象存储设备,则此时,可以在该数据读取请求中携带目标文件“F”的标识,以请求从该云对象存储设备中读取目标文件“F”,等等。
其中,该数据读取请求的获取方式可以有多种,比如,可以由运维人员触发生成,或者,也可以接收其他设备发送的数据读取请求,等等。
B202、业务服务器根据该数据读取请求获取Hadoop接口,然后执行步骤B203。
例如,如图2e所示,业务服务器在接收到数据写入请求后,可以启动Hive或Spark后,然后由Hive或Spark根据该数据读取请求获取Hadoop接口,然后执行步骤B203。
B203、业务服务器通过该Hadoop接口调用文件读取接口集合,并将使用的文件系统协议设置为COS协议,然后执行步骤B204。
例如,如图2e所示,具体可以由Hive或Spark通过Hadoop接口调用文件读取接口集合,并将使用的文件系统协议设置为COS协议,然后执行步骤B204。
其中,文件读取接口集合中包括多个文件读取接口。
B204、业务服务器根据COS协议调用COS插件,并执行步骤B205,比如,可参见图2e。
B205、业务服务器通过该COS插件,在该文件读取接口集合中为该目标文件标识适配文件读取接口,得到目标读取接口。
例如,还是以该目标文件标识为文件名“F”,且该文件读取接口集合中包括文件读取接口1、文件读取接口2、文件读取接口3和文件读取接口4为例,则步骤B205具体可以如下:
业务服务器可以通过该COS插件,在该文件读取接口集合中为文件名“F”适配文件读取接口,比如,如果与文件名“F”适配的文件读取接口为“文件读取接口1”,则此时,可以将文件读取接口1确定为目标读取接口,以此类推,等等。
其中,适配的策略可以根据实际应用的需求进行灵活设置,比如,可以根据当前文件读取接口的使用情况、或者根据该目标文件标识所对应的文件的文件类型来进行适配,等等,在此不再赘述。
B206、业务服务器根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象,若存在,则执行步骤B207,若不存在,则执行步骤B208。
B207、业务服务器通过该目标读取接口从本地缓存中读取与该目标文件标识对应的对象。例如,具体可以如下:
业务服务器通过该目标读取接口获取目标文件的读取路径和读取范围(range),然后,根据该读取路径和读取范围从本地缓存中读取与该目标文件标识对应的对象。
比如,还是以目标文件为文件“F”为例,若在步骤B205中,已经确定目标读取接口为“文件读取接口1”,则此时,业务服务器通过“文件读取接口1”获取文件“F”的读取路径和读取范围,然后,根据该读取路径和读取范围确定需要读取的对象在本地缓存中的存储位置,并对该存储位置上的对象进行读取。
需说明的是,若读取范围表明所需要读取的对象范围已超出本地缓存所保存的对象范围,则可以直接从云对象存储设备中读取该超出范围的对象,或者也可以从云对象存储设备中拉取包含该超出范围的对象的数据(比如拉取指定大小的缓存文件),保存在本地缓存中(参见图2e),然后,再从本地缓存中读取该超出范围的对象。
可选的,若读取失败,则可以重新执行步骤B207,或者,也可以返回执行B203或B205,又或者,还可以执行步骤B208,具体可根据实际应用的需求进行设置。此外,在读取失败时,还可以生成相应的失败提示信息,以便用户可以及时获知并进行调整。
B208、业务服务器基于该连接(即该业务服务器与云对象存储设备之间的连接),通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象。
例如,业务服务器具体可以通过该目标读取接口获取目标文件的读取路径和读取范围,然后,基于该连接,根据该读取路径和读取范围从该云对象存储设备中读取与该目标文件标识对应的对象,并将读取到的对象保存在本地缓存中。
比如,还是以目标文件为文件“F”为例,若在步骤B205中,已经确定目标读取接口为“文件读取接口1”,则此时,业务服务器通过“文件读取接口1”获取文件“F”的读取路径和读取范围,然后,根据该读取路径和读取范围确定需要读取的对象在云对象存储设备中的存储位置,并对该存储位置上的对象进行读取,此后,可以将读取到的对象保存在本地缓存中,以便后续需要再次读取该对象时,可以快速进行读取。
可选的,若读取失败,则可以重新执行步骤B208,或者,也可以返回执行B203或B205,具体可根据实际应用的需求进行设置。此外,在读取失败时,还可以生成相应的失败提示信息,以便用户可以及时获知并进行调整。
此外,需说明的是,若在读取该目标文件时,该大数据处理装置和云对象存储设备之间的连接已经断开,则需要重新建立该连接,即在步骤“业务服务器基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象(即步骤B208)”之前,该大数据处理方法还可以包括:
若该连接已断开,则业务服务器可以根据该COS协议建立与云对象存储设备之间的连接。例如,具体可以如下:
业务服务器通过COS插件获取预设的对象存储信息,比如,获取COS的用户名、容器名称、以及容器所在的区域信息等,然后,根据该对象存储信息建立该大数据处理装置与云对象存储设备之间的连接。
B209、业务服务器根据读取到的对象生成目标文件。
例如,业务服务器具体可以根据预设的数据格式,将读取到的对象重构成目标文件。
由上可知,本实施例在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及建立与云对象存储设备之间的连接,再然后,基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中,此后,在需要对该目标文件进行读取时,便可以从该云对象存储设备读取对象,并根据读取到的对象生成目标文件;由于该方案主要是以对象为存储单位来对文件进行存储,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构(即一个对象不会属于另一个对象的下一级),因此,在存储前,无需如现有技术般周期性地对需要存储的小文件进行离线合并,可以大大提高文件处理容量;而且,在存储后,还可以直接对对象进行透明访问和修改,操作更为简便;也就是说,该方案相对于现有的Hadoop而言,不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种大数据处理装置,该大数据处理装置具体可以服务器,比如业务服务器等设备中。
例如,如图3a所示,该大数据处理装置可以包括获取单元301、配置单元302、适配单元303、连接建立单元304和存储单元305,如下:
(1)获取单元301;
获取单元301,用于获取数据写入请求,该数据写入请求携带目标文件标识和目标文件内容。
其中,对于数据写入请求而言,目标文件指的是需要写入的文件;目标文件标识指的是可以用于识别目标文件的信息,比如文件名;而目标文件内容指的是该目标文件里所记载的数据。
其中,该数据写入请求的获取方式可以有多种,比如,可以由运维人员触发生成,或者,也可以接收其他设备发送的数据写入请求,等等。同理,写入的数据(即目标文件)可以由运维人员进行输入,也可以是从其他的存储设备上迁移而来的,若从其他的存储设备上迁移而来的,即:
该获取单元301,具体可以用于接收数据转移指令,该数据转移指令指示目标文件标识、源文件系统协议和目标文件系统协议,该目标文件系统协议为对象存储协议,根据源文件系统协议确定源文件系统,并从该源文件系统获取该目标文件标识对应的目标文件内容,根据该对象存储协议、目标文件标识和目标文件内容生成数据写入请求。
其中,源文件系统协议可以根据实际应用的需求而定,比如,具体可以为Hadoop协议,而对象存储协议具体可以为COS协议等。
(2)配置单元302;
配置单元302,用于根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议。
例如,该配置单元302可以包括调用子单元和设置子单元,如下:
该调用子单元,可以用于根据该数据写入请求获取Hadoop接口,通过该Hadoop接口调用文件写入接口集合。
该设置子单元,可以用于将使用的文件系统协议设置为对象存储协议。
其中,文件写入接口集合中包括多个文件写入接口。而该对象存储协议可以根据实际应用的需求进行设置,比如,具体可以为COS协议。
(3)适配单元303;
适配单元303,用于根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,得到目标写入接口。
例如,该适配单元303,具体可以用于根据该对象存储协议调用对象存储插件,通过该对象存储插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口。
比如,该适配单元303,可以根据COS协议调用COS插件,通过该COS插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口,等等。
(4)连接建立单元304;
连接建立单元304,用于根据该对象存储协议建立与云对象存储设备之间的连接。
该连接建立单元304,具体可以用于通过该对象存储插件,获取预设的对象存储信息,比如存储对象的用户名、容器名称、以及容器所在的区域信息等,根据该对象存储信息建立与云对象存储设备之间的连接。
比如,以该对象存储插件为COS插件为例,则连接建立单元304具体可以通过COS插件获取预设的对象存储信息,然后,根据该对象存储信息建立该大数据处理装置与云对象存储设备之间的连接。
(5)存储单元305;
存储单元305,用于基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
例如,该存储单元305,具体可以用于通过该目标写入接口获取目标文件的写入路径,基于该连接,根据该写入路径将该目标文件内容以对象为存储单位存储在该云对象存储设备中,等等。
可选的,在将该目标文件写入云对象存储设备之后,还可以从该云对象存储设备中读取该目标文件。即如图3b所示,该大数据处理装置还可以包括读取单元306和生成单元307,如下:
获取单元301,还可以用于接收数据读取请求,该数据读取请求携带目标文件标识;
读取单元306,用于根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象。
生成单元307,用于根据读取到的对象生成目标文件。
例如,该读取单元306,具体可以用于根据该数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件读取接口集合中选择与该目标文件标识对应的文件读取接口,得到目标读取接口,基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象。
比如,读取单元306,具体可以用于根据该数据读取请求获取Hadoop接口,通过该Hadoop接口调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议。
其中,文件读取接口集合中包括多个文件读取接口。而该对象存储协议可以根据实际应用的需求进行设置,比如,具体可以为COS协议。
在调用了文件读取接口集合、以及设置了对象存储协议之后,读取单元306便可以根据该对象存储协议调用对象存储插件,比如COS插件,通过该对象存储插件,在该文件读取接口集合中为该目标文件标识适配文件读取接口,得到目标读取接口,然后,通过该目标读取接口获取目标文件的读取路径和读取范围,基于该连接,根据该读取路径和读取范围从该云对象存储设备中读取与该目标文件标识对应的对象,并将读取到的对象保存在本地缓存中。
可选的,为了避免每次读取都需要通过网络请求该云对象存储设备,降低读取数据的平均延迟,还可以在本地缓存一定尺寸的对象,即如图3b所示,该大数据处理装置还可以包括判断单元308,如下:
判断单元308,可以用于根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象。
则此时,读取单元306,具体可以用于在判断单元308确定本地缓存存在目标文件标识对应的对象时,根据该数据读取请求,从本地缓存中读取与该目标文件标识对应的对象;在判断单元308确定本地缓存不存在目标文件标识对应的对象时,根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象。
其中,从本地缓存中读取对象、以及从云对象存储设备中读取对象的方式具体可参见前面的实施例,在此不再赘述。
此外,还需说明的是,若读取单元306在读取该目标文件时,该大数据处理装置和云对象存储设备之间的连接已经断开,则需要重新建立该连接,即:
连接建立单元304,还可以用于若在读取单元读取该目标文件时,大数据处理装置与云对象存储设备之间的连接已断开,则根据该对象存储协议建立该大数据处理装置与云对象存储设备之间的连接。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,比如,该获取单元301可以由图2a中的最上层“Hadoop的大数据套件”来实现,配置单元302可以由图2a中的“Hadoop系统”层来实现,适配单元303和连接建立单元304可以由图2a中的“存储适配层”来实现,而存储单元305则可以由图2a中的“存储层”来实现,等等,当然,除此之外,还可以是其他的实现方式,应当理解的是,以上仅仅为示例。此外,需说明的是,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以由配置单元302根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,由适配单元303根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及由连接建立单元304建立与云对象存储设备之间的连接,再然后,由存储单元305基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中,后续若需要对该目标文件进行读取,则可以由读取单元306对对象进行读取,并由生成单元307根据读取到的对象生成目标文件;由于该方案主要是以对象为存储单位来对文件进行存储,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构(即一个对象不会属于另一个对象的下一级),因此,在存储前,无需如现有技术般周期性地对需要存储的小文件进行离线合并,可以大大提高文件处理容量;而且,在存储后,还可以直接对对象进行透明访问和修改,操作更为简便;也就是说,该方案相对于现有的Hadoop而言,不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
实施例四、
本发明实施例还提供一种业务服务器,可以集成本发明实施例所提供的任一种大数据处理装置。如图4所示,其示出了本发明实施例所涉及的业务服务器的结构示意图,具体来讲:
该业务服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的业务服务器结构并不构成对业务服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该业务服务器的控制中心,利用各种接口和线路连接整个业务服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行业务服务器的各种功能和处理数据,从而对业务服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据业务服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
业务服务器还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该业务服务器还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,业务服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,业务服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取携带目标文件标识和目标文件内容的数据写入请求,根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,得到目标写入接口,根据该对象存储协议建立与云对象存储设备之间的连接,基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
例如,具体可以根据该数据写入请求获取Hadoop接口,通过该Hadoop接口调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议调用对象存储插件,通过该对象存储插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口,以及,通过该对象存储插件,获取预设的对象存储信息,根据该对象存储信息建立与云对象存储设备之间的连接(即大数据处理装置与云对象存储设备之间的连接),此后,便可以通过该目标写入接口获取目标文件的写入路径,然后,基于该连接,根据该写入路径将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
可选的,在将该目标文件写入云对象存储设备之后,还可以从该云对象存储设备中读取该目标文件。即处理器401还可以运行存储在存储器402中的应用程序,从而实现以下功能:
接收数据读取请求,该数据读取请求携带目标文件标识等信息,根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象,然后,根据读取到的对象生成目标文件。
例如,具体可以根据该数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件读取接口集合中选择与该目标文件标识对应的文件读取接口,得到目标读取接口,然后,基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象。
可选的,为了避免每次读取都需要通过网络请求该云对象存储设备,降低读取数据的平均延迟,可以在本地缓存一定数量的对象,即在“根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象”之前,还可以先根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象,若存在,则根据该数据读取请求,从本地缓存中读取与该目标文件标识对应的对象;若不存在,则执行根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象的操作。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的业务服务器在获取到携带目标文件标识和目标文件内容的数据写入请求后,可以根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,以及建立与云对象存储设备之间的连接,再然后,基于该连接,通过该目标写入接口,将目标文件内容以对象为存储单位存储在该云对象存储设备中,此后,还可以对存储的对象进行读取;由于该方案主要是以对象为存储单位来对文件进行存储,而对象作为数据存储的一个基本单元,在一个层结构中并不会再有层级结构(即一个对象不会属于另一个对象的下一级),因此,在存储前,无需如现有技术般周期性地对需要存储的小文件进行离线合并,可以大大提高文件处理容量;而且,在存储后,还可以直接对对象进行透明访问和修改,操作更为简便;也就是说,该方案相对于现有的Hadoop而言,不仅文件处理容量和存储数量大,而且可以大大提高灵活性和处理效率。
实施例五、
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种大数据处理方法中的步骤。例如,该指令可以执行如下步骤:
获取携带目标文件标识和目标文件内容的数据写入请求,根据该数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件写入接口集合中选择与该目标文件标识对应的文件写入接口,得到目标写入接口,根据该对象存储协议建立与云对象存储设备之间的连接,基于该连接,通过该目标写入接口,将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
例如,具体可以根据该数据写入请求获取Hadoop接口,通过该Hadoop接口调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议,然后,根据该对象存储协议调用对象存储插件,通过该对象存储插件,在该文件写入接口集合中为该目标文件标识适配文件写入接口,得到目标写入接口,以及,通过该对象存储插件,获取预设的对象存储信息,根据该对象存储信息建立与云对象存储设备之间的连接(即大数据处理装置与云对象存储设备之间的连接),此后,便可以通过该目标写入接口获取目标文件的写入路径,然后,基于该连接,根据该写入路径将该目标文件内容以对象为存储单位存储在该云对象存储设备中。
可选的,在将该目标文件写入云对象存储设备之后,还可以从该云对象存储设备中读取该目标文件。即该指令可以执行如下步骤:
接收数据读取请求,该数据读取请求携带目标文件标识等信息,根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象,然后,根据读取到的对象生成目标文件。
例如,具体可以根据该数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议,根据该对象存储协议,从该文件读取接口集合中选择与该目标文件标识对应的文件读取接口,得到目标读取接口,然后,基于该连接,通过该目标读取接口从该云对象存储设备中读取与该目标文件标识对应的对象。
可选的,为了避免每次读取都需要通过网络请求该云对象存储设备,降低读取数据的平均延迟,可以在本地缓存一定数量的对象,即执行步骤“根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象”之前,该指令还可以执行如下步骤:
根据该数据读取请求确定本地缓存是否存在该目标文件标识对应的对象,若存在,则根据该数据读取请求,从本地缓存中读取与该目标文件标识对应的对象;若不存在,则执行根据该数据读取请求,从该云对象存储设备中读取与该目标文件标识对应的对象的操作。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种大数据处理方法中的步骤,因此,可以实现本发明实施例所提供的任一种大数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种大数据处理方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种大数据处理方法,其特征在于,包括:
获取数据写入请求,所述数据写入请求携带目标文件标识和目标文件内容;
根据所述数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议;
根据所述对象存储协议,从所述文件写入接口集合中选择与所述目标文件标识对应的文件写入接口,得到目标写入接口;
根据所述对象存储协议建立与云对象存储设备之间的连接;
基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据写入请求调用文件写入接口集合,包括:
根据所述数据写入请求获取Hadoop接口;
通过所述Hadoop接口调用文件写入接口集合。
3.根据权利要求1所述的方法,其特征在于,所述根据所述对象存储协议,从所述文件写入接口集合中选择与所述目标文件标识对应的文件写入接口,得到目标写入接口,包括:
根据所述对象存储协议调用对象存储插件;
通过所述对象存储插件,在所述文件写入接口集合中为所述目标文件标识适配文件写入接口,得到目标写入接口。
4.根据权利要求3所述的方法,其特征在于,所述根据所述对象存储协议建立与云对象存储设备之间的连接,包括:
通过所述对象存储插件,获取预设的对象存储信息,所述对象存储信息包括存储对象的用户名、容器名称、以及容器所在的区域信息;
根据所述对象存储信息建立与云对象存储设备之间的连接。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中,包括:
通过所述目标写入接口获取目标文件的写入路径;
基于所述连接,根据所述写入路径将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中之后,还包括:
接收数据读取请求,所述数据读取请求携带目标文件标识;
根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象;
根据读取到的对象生成目标文件。
7.根据权利要求6所述的方法,其特征在于,所述根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象之前,还包括:
根据所述数据读取请求确定本地缓存是否存在所述目标文件标识对应的对象;
若存在,则根据所述数据读取请求,从本地缓存中读取与所述目标文件标识对应的对象;
若不存在,则执行根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象的步骤。
8.根据权利要求6所述的方法,其特征在于,所述根据所述数据读取请求,从所述云对象存储设备中读取与所述目标文件标识对应的对象,包括:
根据所述数据读取请求调用文件读取接口集合,并将使用的文件系统协议设置为对象存储协议;
根据所述对象存储协议,从所述文件读取接口集合中选择与所述目标文件标识对应的文件读取接口,得到目标读取接口;
基于所述连接,通过所述目标读取接口从所述云对象存储设备中读取与所述目标文件标识对应的对象。
9.根据权利要求8所述的方法,其特征在于,所述根据所述数据读取请求调用文件读取接口集合,包括:
根据所述数据读取请求获取Hadoop接口;
通过所述Hadoop接口调用文件读取接口集合。
10.根据权利要求8所述的方法,其特征在于,所述根据所述对象存储协议,从所述文件读取接口集合中选择与所述目标文件标识对应的文件读取接口,得到目标读取接口,包括:
根据所述对象存储协议调用对象存储插件;
通过所述对象存储插件,在所述文件读取接口集合中为所述目标文件标识适配文件读取接口,得到目标读取接口。
11.根据权利要求8所述的方法,其特征在于,所述基于所述连接,通过所述目标读取接口从所述云对象存储设备中读取与所述目标文件标识对应的对象,包括:
通过所述目标读取接口获取目标文件的读取路径和读取范围;
基于所述连接,根据所述读取路径和读取范围从所述云对象存储设备中读取与所述目标文件标识对应的对象,并将读取到的对象保存在本地缓存中。
12.根据权利要求8所述的方法,其特征在于,所述基于所述连接,通过所述目标读取接口从所述云对象存储设备中读取与所述目标文件标识对应的对象之前,还包括:
若所述连接已断开,则根据所述对象存储协议建立与云对象存储设备之间的连接。
13.根据权利要求1至4任一项所述的方法,其特征在于,所述获取数据写入请求,包括:
接收数据转移指令,所述数据转移指令指示目标文件标识、源文件系统协议和目标文件系统协议,所述目标文件系统协议为对象存储协议;
根据源文件系统协议确定源文件系统,并从所述源文件系统获取所述目标文件标识对应的目标文件内容;
根据所述对象存储协议、目标文件标识和目标文件内容生成数据写入请求。
14.一种大数据处理装置,其特征在于,包括:
获取单元,用于获取数据写入请求,所述数据写入请求携带目标文件标识和目标文件内容;
配置单元,用于根据所述数据写入请求调用文件写入接口集合,并将使用的文件系统协议设置为对象存储协议;
适配单元,用于根据所述对象存储协议,从所述文件写入接口集合中选择与所述目标文件标识对应的文件写入接口,得到目标写入接口;
连接建立单元,用于根据所述对象存储协议建立与云对象存储设备之间的连接;
存储单元,用于基于所述连接,通过所述目标写入接口,将所述目标文件内容以对象为存储单位存储在所述云对象存储设备中。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至13任一项所述的大数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224585.3A CN108491163B (zh) | 2018-03-19 | 2018-03-19 | 一种大数据处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224585.3A CN108491163B (zh) | 2018-03-19 | 2018-03-19 | 一种大数据处理方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491163A true CN108491163A (zh) | 2018-09-04 |
CN108491163B CN108491163B (zh) | 2022-01-04 |
Family
ID=63339846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810224585.3A Active CN108491163B (zh) | 2018-03-19 | 2018-03-19 | 一种大数据处理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491163B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299057A (zh) * | 2018-10-09 | 2019-02-01 | 北京快友世纪科技股份有限公司 | Hadoop多管道数据处理分析方法 |
CN109656889A (zh) * | 2018-12-26 | 2019-04-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件系统实现方法、装置、设备和存储介质 |
WO2021057317A1 (zh) * | 2019-09-23 | 2021-04-01 | 中国银联股份有限公司 | 一种访问对接器、系统及应用该访问对接器的方法及装置 |
CN112835529A (zh) * | 2021-02-23 | 2021-05-25 | 深圳市得一微电子有限责任公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112882852A (zh) * | 2021-03-25 | 2021-06-01 | 上海科世达-华阳汽车电器有限公司 | 一种接口数据存储方法、装置和计算机可读存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156763A1 (en) * | 2005-12-30 | 2007-07-05 | Jian-Hong Liu | Storage management system and method thereof |
CN103559247A (zh) * | 2013-10-29 | 2014-02-05 | 北京华胜天成科技股份有限公司 | 一种数据业务处理方法及装置 |
US20160062694A1 (en) * | 2013-02-21 | 2016-03-03 | Netapp, Inc. | Object store architecture for distributed data processing system |
CN105843554A (zh) * | 2016-03-11 | 2016-08-10 | 中国联合网络通信集团有限公司 | 基于对象存储的数据迁移的方法及其系统 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN106462444A (zh) * | 2014-01-06 | 2017-02-22 | 西亚拉斯公司 | 云提供商选择和投影的架构及方法 |
CN106471501A (zh) * | 2016-03-24 | 2017-03-01 | 华为技术有限公司 | 数据查询的方法、数据对象的存储方法和数据系统 |
CN106534261A (zh) * | 2016-10-09 | 2017-03-22 | 乐视控股(北京)有限公司 | 数据写入方法、装置及系统 |
US20170085555A1 (en) * | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
CN106980647A (zh) * | 2017-02-24 | 2017-07-25 | 深圳市中博睿存信息技术有限公司 | 一种分布式文件系统数据分布方法及装置 |
CN107220003A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据读取方法和系统 |
CN107454165A (zh) * | 2017-08-04 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种hadoop集群对ceph集群的访问方法及装置 |
CN107679206A (zh) * | 2017-10-13 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种用于对象存储S3和Swift的数据互访方法及系统 |
-
2018
- 2018-03-19 CN CN201810224585.3A patent/CN108491163B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156763A1 (en) * | 2005-12-30 | 2007-07-05 | Jian-Hong Liu | Storage management system and method thereof |
US20160062694A1 (en) * | 2013-02-21 | 2016-03-03 | Netapp, Inc. | Object store architecture for distributed data processing system |
CN103559247A (zh) * | 2013-10-29 | 2014-02-05 | 北京华胜天成科技股份有限公司 | 一种数据业务处理方法及装置 |
CN106462444A (zh) * | 2014-01-06 | 2017-02-22 | 西亚拉斯公司 | 云提供商选择和投影的架构及方法 |
US20170085555A1 (en) * | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
CN105843554A (zh) * | 2016-03-11 | 2016-08-10 | 中国联合网络通信集团有限公司 | 基于对象存储的数据迁移的方法及其系统 |
CN106471501A (zh) * | 2016-03-24 | 2017-03-01 | 华为技术有限公司 | 数据查询的方法、数据对象的存储方法和数据系统 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN106534261A (zh) * | 2016-10-09 | 2017-03-22 | 乐视控股(北京)有限公司 | 数据写入方法、装置及系统 |
CN106980647A (zh) * | 2017-02-24 | 2017-07-25 | 深圳市中博睿存信息技术有限公司 | 一种分布式文件系统数据分布方法及装置 |
CN107220003A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据读取方法和系统 |
CN107454165A (zh) * | 2017-08-04 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种hadoop集群对ceph集群的访问方法及装置 |
CN107679206A (zh) * | 2017-10-13 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种用于对象存储S3和Swift的数据互访方法及系统 |
Non-Patent Citations (1)
Title |
---|
为码而活转载: "为Hadoop存储层增加对OpenStack Swift的支持", 《HTTP://WWW.WFUYU.COM/INTERNET/18575.HTML》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299057A (zh) * | 2018-10-09 | 2019-02-01 | 北京快友世纪科技股份有限公司 | Hadoop多管道数据处理分析方法 |
CN109656889A (zh) * | 2018-12-26 | 2019-04-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件系统实现方法、装置、设备和存储介质 |
CN109656889B (zh) * | 2018-12-26 | 2021-09-14 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件系统实现方法、装置、设备和存储介质 |
WO2021057317A1 (zh) * | 2019-09-23 | 2021-04-01 | 中国银联股份有限公司 | 一种访问对接器、系统及应用该访问对接器的方法及装置 |
TWI782306B (zh) * | 2019-09-23 | 2022-11-01 | 大陸商中國銀聯股份有限公司 | 訪問對接器、系統及應用該訪問對接器的方法及裝置 |
JP2022547691A (ja) * | 2019-09-23 | 2022-11-15 | チャイナ ユニオンペイ カンパニー リミテッド | アクセスドッキングコンポーネント、システム、並びに、そのアクセスドッキングコンポーネントを用いた方法及び装置 |
JP7369860B2 (ja) | 2019-09-23 | 2023-10-26 | チャイナ ユニオンペイ カンパニー リミテッド | アクセスドッキングコンポーネント、システム、並びに、そのアクセスドッキングコンポーネントを用いた方法及び装置 |
CN112835529A (zh) * | 2021-02-23 | 2021-05-25 | 深圳市得一微电子有限责任公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112882852A (zh) * | 2021-03-25 | 2021-06-01 | 上海科世达-华阳汽车电器有限公司 | 一种接口数据存储方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108491163B (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491163A (zh) | 一种大数据处理方法、装置和存储介质 | |
CN102779185B (zh) | 一种高可用分布式全文索引方法 | |
Nathan et al. | Comicon: A co-operative management system for docker container images | |
KR102025934B1 (ko) | 분산형 시스템에서의 범위들의 분할 및 이동 | |
US10425480B2 (en) | Service plan tiering, protection, and rehydration strategies | |
CN104813321B (zh) | 在分布式对象存储生态系统中的去耦合的内容以及元数据 | |
CN103765406B (zh) | 用于远程更新执行进程的方法和装置 | |
US8260913B2 (en) | Reading a file from a cloud storage solution | |
CN104111804B (zh) | 一种分布式文件系统 | |
US9235623B2 (en) | Policy-based storage structure distribution | |
CN102981929B (zh) | 磁盘镜像的管理方法和系统 | |
CN104391930A (zh) | 分布式文件存储装置和方法 | |
CN108351806A (zh) | 分布式基于流的数据库触发器 | |
CN107710215A (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
CN107111631A (zh) | 粒度同步/半同步架构 | |
CN103237046A (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN105740469B (zh) | 存储服务器和元数据访问方法 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US9355106B2 (en) | Sensor data locating | |
CN109408689A (zh) | 数据获取方法、装置、系统及电子设备 | |
CN106686095A (zh) | 一种基于纠删码技术的数据存储方法及装置 | |
CN111209364A (zh) | 一种基于众包地图更新的海量数据接入处理方法及系统 | |
US20160078065A1 (en) | Policy-based Storage Structure Distribution | |
US10558373B1 (en) | Scalable index store | |
CN109992373A (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |