一种基于Hadoop2的高效能流媒体文件分布式存储系统及方法
技术领域
本发明涉及一种文件分布式存储方法,尤其涉及一种基于Hadoop2的高效能流媒体文件分布式存储系统及方法,适应于分布式流媒体视频文件存储领域。
背景技术
随着视频动画技术的发展,媒体资源的清晰度不断提高,媒体文件的大数据特性不断增强,面对用户对于在线媒体需求不断增加的这种发展状况,解决好媒体文件这种大数据的存储无疑是十分必要而且迫切需求的。
目前广泛使用的流媒体存储大都是存在于单一节点的,或者由数个相同的硬盘组成的硬盘阵列来实现存储。随着新硬盘技术的出现,固态硬盘逐渐进入了市场,其在I/O吞吐量、读写速度,尤其是随机读写上表现出来的优势是无可比拟的,但固态硬盘的价格目前还处在一个较为昂贵的位置。
发明内容
本发明要解决的技术问题是:为了在将原本服务系统性能提高的同时能控制好成本,提供一种基于Hadoop2的高效能流媒体文件分布式存储系统及方法;能够有效的对流媒体文件进行分布存储,提高文件存储时效性及文件存储的能力;同时,能够快速地实现文件的上传及下载服务的管理,维护用户使用的流畅性。
为实现上述目的,本发明采取的技术方案是:
一种基于Hadoop2的高效能流媒体文件分布式存储系统,包括用户交互模块、控制模块、存储模块及数据库;所述用户交互模块的输入端与计算机网络相连接,输出端分别与控制模块、数据库连接,所述用户交互模块接收用户通过网络发出的流媒体文件上传或下载的信息,根据需要将用户上传的流媒体文件进行分块,流媒体文件分块信息和下载流媒体文件的信息分别传送给控制模块、数据库,并接收控制模块及数据库的反馈信息;所述数据库还与控制模块连接,数据库将从用户交互模块中得到的信息进行记录,并将相关记录数据传输给控制模块;控制模块与存储模块连接,控制模块接收用户交互模块的信息,结合数据库中输出的信息记录,向存储模块发出响应请求信息;所述存储模块接收控制模块的请求信号进行分布式处理后,将信号反馈给控制模块;
进一步改进,所述存储模块包括分布存储过程控制模块及存储器集;所述分布存储过程控制模块的输入端与控制模块连接,输出端与存储器集连接,所述分布存储过程控制模块接收控制模块的请求信号,对应作出上传或下载流媒体文件或文件分块至存储器集的操作;所述存储器集的输入端与分布式存储过程控制模块连接,输出端与控制模块连接,所述存储器集接收分布式存储过程控制模块传来的流媒体文件或文件分块上传或下载的请求,完成数据的交换处理后,将信息反馈给控制模块,通过控制模块控制允许用户下载或上传;
进一步改进,所述存储器集包括由若干固态硬盘组成的Hadoop固态硬盘阵列、由与所述固态硬盘相同数量的传统机械硬盘组成的Hadoop传统硬盘阵列及由固态硬盘与传统硬盘相结合产生的Hadoop混合式硬盘阵列;所述固态硬盘阵列、传统硬盘阵列及混合式硬盘阵列依据Hadoop2的特性设置;组成所述Hadoop混合式硬盘阵列的固态硬盘与传统硬盘的数量之和与组成所述Hadoop固态硬盘阵列的固态硬盘数量相同。
所述硬盘阵列通过网络设备连接;所述存储器集根据流媒体文件或文件分块的访问数据变化信息完成不同结构的硬盘阵列之间的数据交换。
所述控制模块中含有定时器,定时从数据库中读取用户访问流媒体文件或文件分块的信息,提交给所述存储模块。
基于上述系统进行流媒体文件的存储方法,具体步骤如下:
步骤1:用户通过计算机网络向用户交互模块发出文件上传或文件下载的请求,用户交互模块经过验证,判定用户是否有该请求的权限;若有相应权限则进入下一步,若无权限则返回无权限操作或操作失败的信息;
步骤2:将流媒体文件分为两类:第一类是带有时效性强的流媒体文件,该类文件在短时间内访问量大,随时间的增长而减少;第二类是其他流媒体文件,该类文件访问量是无法预知的,一般在一段时间内才会有信息反馈;
步骤3:在步骤1中生成的信息若为时效性强的流媒体注释信息,则用户交互模块提交至数据库,并将时效性强的流媒体直接传输至控制模块;生成的信息若为时效性不强的流媒体文件信息, 则将时效性不强的流媒体文件进行分块,且该分块的大小应与Hadoop中存储分块的大小相一致,生成时效性不强的流媒体注释信息与流媒体文件分块信息,将该信息提交至数据库,同时,将时效性不强的流媒体文件传输至控制模块;
步骤4:文件经过控制模块,根据用户的请求内容,完成文件的传送及数据提交,或由定时器触发后,读取数据库中流媒体文件的阈值变化信息,将阈值信息传入至存储模块;
步骤5:进入存储模块后,根据不同的用户的上传文件或下载文件的请求进行相应的文件处理,并将处理结果信息反馈给控制模块;
进一步改进,在步骤2中,所述时效性强的流媒体文件为广告、新闻或即时消息;所述的其他流媒体文件为电影、影视剧、动画或音乐MV;
进一步改进,在步骤5中,所述的用户请求为上传文件请求,则进入流媒体文件上传步骤,具体步骤包括:
A、分布式存储过程控制模块对文件信息进行验证;若验证结果带有时效性,则进入下一步,进行带有何种时效性信息的判断;若验证结果不带有时效性,则存储器集直接收集上传失败信息,将信息返回至控制模块;
B、分布式储存过程控制模块对时效性强弱进行判定,若判定文件带有时效性强的信息,则直接将时效性强的流媒体文件提交至Hadoop固态硬盘阵列当中,进行文件上传及存储,并收集文件上传成功信息,将信息返回至控制模块;若判定文件带有时效性不强的信息,则进入向存储器集提交验证请求,判断该上传文件是否已存在于现有的某个硬盘阵列当中;
C、经过判断,若文件不存在,则表示请求上传的文件为新文件,而且时效性不强,则直接将该流媒体文件分块传输至Hadoop传统硬盘阵列当中,进行文件上传及存储,并收集文件上传成功信息,将信息返回至控制模块;若文件存在,则进入访问量点数的变化判断,判断文件访问量点数的变化是否满足更换存储条件的判断,并对文件进行分块处理;
D、在数据库中预先设定三个阈值,阈值表示单位时间内某流媒体文件或文件分块的访问量,每个阈值对应相应的流媒体文件或文件块列表;所述三个阈值分别为
(1)阈值0:表示流媒体文件或文件分块在单位时间内的访问量为低或为零;
(2)阈值1:表示流媒体文件或文件分块在单位时间内的访问量为中;
(3)阈值2:表示流媒体文件或文件分块在单位时间内的访问量为高;
经过判断,根据文件所处的阈值对文件进行分块处理,若判断文件点数变化不满足更换存储条件的判断,表示文件已重复且不需要更换,则直接收集上传或更新失败信息,将信息返回至控制模块;若判断文件的点数有变化,则根据设定的阈值进行分块处理;
根据设定的阈值进行分块处理主要有三种情况:
第一种,判断更换条件是否满足阈值2,经判断满足阈值2,表示该文件信息需要更新,则将文件传送至Hadoop混合式硬盘阵列,存储器集收集更新成功信息,将信息返回至控制模块;若判断更换条件不满足阈值2,则进入是否满足阈值1的判断;
第二种,经过判断更换条件满足阈值1,则根据文件上升或下降判断,文件原本存在的位置,若文件原本存储在Hadoop固态硬盘阵列中则将文件传送至Hadoop混合式硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;若文件原本存储在Hadoop混合式硬盘阵列中则将文件传送至Hadoop传统硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;
经过判断更换条件不满足阈值1,则进入是否满足阈值0的判断;
第三种,经过判断更换条件满足阈值0,则将原本存储在Hadoop固态硬盘阵列、Hadoop混合式硬盘阵列中的文件传送至Hadoop传统硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;
经过判断更换条件不满足阈值0,表示文件之前的判断出现错误,此时,存储器集收集更新失败信息,将信息返回至控制模块;
所述阈值0,表示流媒体文件每小时访问量低于0.5万次;所述的阈值1,表示流媒体文件每小时访问量高于0.5万次但低于2万次;所述的阈值2,表示流媒体文件每小时访问量高于2万次。
进一步改进,在步骤5中,所述的用户请求为下载文件请求,则进入流媒体文件下载步骤,具体步骤包括:
(1)、分布式存储过程控制模块对文件信息进行验证,经过分析判定后确定文件作处的位置;
(2)、向存储器集发出文件下载的请求;并进行文件的下载,存储器集收集下载信息,将下载结果返回至控制模块;
与现有技术相比,采用上述方案,本发明的有益效果是:本发明能够在成本可控的情况下迅速提高流媒体服务系统的并发效率及读写效率,该系统可靠且合理冗余,并且节省电力资源,符合和谐社会发展的要求;当流媒体文件提交至流媒体服务器之时,我们根据流媒体文件的不同特性进行评级并存储在合理的异构存储介质当中,将一些时效性强、访问量大的流媒体文件评为更高的级别,在选择存储时,将其存储在速度更快的存储器上;而对于访问时效性不强的流媒体文件,先将其分块,这样可以带来两个优点:一方面,可以减少Hadoop再次分块的负担;另一方面,有利于流媒体文件访问的倾向性进行专项的访问。
附图说明
图1是本发明的高效能流媒体文件分布式存储系统的结构示意图;
图2是本发明的高效能流媒体文件分布式存储方法中文件上传流程示意图;
图3是本发明的高效能流媒体文件分布式存储方法中文件下载示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1所示,一种基于Hadoop2的高效能流媒体文件分布式存储系统,包括用户交互模块、控制模块、存储模块及数据库;其特征在于:所述用户交互模块的输入端与计算机网络相连接,输出端分别与控制模块、数据库连接,所述用户交互模块接收用户通过网络发出的流媒体文件上传或下载的信息,根据需要将用户上传的流媒体文件进行分块,流媒体文件分块信息和下载流媒体文件的信息分别传送给控制模块、数据库,并接收控制模块及数据库的反馈信息;所述数据库还与控制模块连接,数据库将从用户交互模块中得到的信息进行记录,并将相关记录数据传输给控制模块;控制模块与存储模块连接,控制模块接收用户交互模块的信息,结合数据库中输出的信息记录,向存储模块发出响应请求信息;所述存储模块接收控制模块的请求信号进行分布式处理后,将信号反馈给控制模块;
优选地,在本实施例中,用户交互模块是为用户提供流媒体服务文件接口,允许指定用户上传与下载流媒体文件;
对上传的流媒体文件进行分块,并传向控制模块,将流媒体文件分块信息及上层提交的注释信息(如视频分块的时效性强与否的信息)写入数据库;对于下载的文件,该模块从控制模块取得流媒体文件,提交给上层服务,记录上层设备、网络及用户下载访问流媒体资源块的信息,并定时向数据库提交用户访问信息变化的数据;
优选地,在本实施例中, 所述控制模块在文件上传时,负责接收从用户交互模块传来的带有注释信息的流媒体文件分块,根据数据库中流媒体分块的注释信息将信息传递给存储模块并定期向存储模块提交数据库中更新的流媒体分块的访问数据变化信息;在文件下载时,负责从存储模块中获得所需流媒体文件分块,并提交至用户交互模块,该模块中含有定时器,定时从数据库中读取用户访问流媒体文件或分块信息,提交给存储模块;
优选地,在本实施例中,所述数据库用于文件信息的写入与读取;
优选地,在本实施例中,存储模块用于流媒体文件的分布式存储,及文件下载时输出相应的文件;
进一步的,所述存储模块包括分布存储过程控制模块及存储器集;所述分布存储过程控制模块的输入端与控制模块连接,输出端与存储器集连接,所述分布存储过程控制模块接收控制模块的请求信号,对应作出上传或下载流媒体文件或文件分块至存储器集的操作;所述存储器集的输入端与分布式存储过程控制模块连接,输出端与控制模块连接,所述存储器集接收分布式存储过程控制模块传来的流媒体文件或文件分块上传或文件下载的请求,完成数据的交换处理后,将信息反馈给控制模块,通过控制模块控制允许用户下载或上传;
优选地,在本实施例中,所述的分布存储过程控制模块为存储模块的子模块,主要是根据控制模块发出的请求,经过一系列的判断,确定一定条件,完成流媒体文件分块至存储器集的上传操作或向存储器集提交下载文件请求,定时发送从控制模块传出的流媒体分块的访问数据变化信息;
优选地,在本实施例中,所述的存储器集也是存储模块的子模块,内部含有若干不同存储结构的Hadoop存储器集群,通过网络设备将Hadoop集群连接,根据分布存储过程控制模块提交的流媒体分块的访问数据变化信息完成不同结构的Hadoop集群之间的数据交换;根据分布存储过程控制模块提交的下载请求,向控制模块传送所需要下载的流媒体文件分块;
进一步改进,所述存储器集包括由若干固态硬盘组成的Hadoop固态硬盘阵列、由与所述固态硬盘相同数量的传统机械硬盘组成的Hadoop传统硬盘阵列及由固态硬盘与传统硬盘相结合产生的Hadoop混合式硬盘阵列;所述固态硬盘阵列、传统硬盘阵列及混合式硬盘阵列依据Hadoop2的特性设置;组成所述Hadoop混合式硬盘阵列的固态硬盘与传统硬盘的数量之和与组成所述Hadoop固态硬盘阵列的固态硬盘数量相同;
基于上述系统进行流媒体文件的存储方法,包括:
步骤1:用户通过计算机网络向用户交互模块发出文件上传或文件下载的请求,用户交互模块经过验证,判定用户是否有该请求的权限;若有相应权限则进入下一步,若无权限则返回无权限操作或操作失败的信息;
步骤2:在数据库中预先设定三个阈值,阈值表示单位时间内某流媒体文件或文件块的访问量,每个阈值对应相应的流媒体文件或文件块列表;所述三个阈值分别为
(1)阈值0:表示流媒体文件或文件分块在单位时间内的访问量为低或为零;
(2)阈值1:表示流媒体文件或文件分块在单位时间内的访问量为中;
(3)阈值2:表示流媒体文件或文件分块在单位时间内的访问量为高;
步骤3:将流媒体文件分为两类:第一类是带有时效性强的流媒体文件,该类文件在短时间内访问量大,随时间的增长而减少;第二类是其他流媒体文件,该类文件访问量是无法预知的,一般在一段时间内才会有信息反馈;
步骤4:在步骤1中生成的信息若为时效性强的流媒体注释信息,则用户交互模块提交至数据库,并将时效性强的流媒体直接传输至控制模块;生成的信息若为时效性不强的流媒体文件信息, 则将时效性不强的流媒体文件进行分块,且该分块的大小应与Hadoop中存储分块的大小相一致,生成时效性不强的流媒体注释信息与流媒体文件分块信息,将该信息提交至数据库,同时,将时效性不强的流媒体文件传输至控制模块;
步骤5:文件经过控制模块,根据用户的请求内容,完成文件的传送及数据提交,或由定时器触发后,读取数据库中流媒体文件的阈值变化信息,将阈值信息传入至存储模块;
步骤6:进入存储模块后,根据不同的用户的上传文件或下载文件的请求进行相应的文件处理,并将处理结果信息反馈给控制模块;
进一步改进,在步骤2中,所述的访问量低,表示流媒体文件每小时访问量低于0.5万次;所述的访问量中,表示流媒体文件每小时访问量高于0.5万次但低于2万次;所述的访问量高,表示流媒体文件每小时访问量高于2万次;
进一步改进,在步骤3中,所述时效性强的流媒体文件为广告、新闻或即时消息;所述的其他流媒体文件为电影、影视剧、动画或音乐MV;
进一步改进,在步骤6中,所述的用户请求为上传文件或下载文件请求;
进一步改进,在步骤6中,所述的用户请求为上传文件请求,则进入流媒体文件上传步骤,具体步骤包括:
A、分布式存储过程控制模块对文件信息进行验证;若验证结果带有时效性,则进入下一步,进行带有何种时效性信息的判断;若验证结果不带有时效性,则存储器集直接收集上传失败信息,将信息返回至控制模块;
B、分布式储存过程控制模块对时效性强弱进行判定,若判定文件带有时效性强的信息,则直接将时效性强的流媒体文件提交至Hadoop固态硬盘阵列当中,进行文件上传及存储,并收集文件上传成功信息,将信息返回至控制模块;若判定文件带有时效性不强的信息,则进入向存储器集提交验证请求,判断该上传文件是否已存在于现有的某个Hadoop硬盘阵列当中;
C、经过判断,若文件不存在,则表示请求上传的文件为新文件,而且时效性不强,则直接将该流媒体文件分块传输至Hadoop传统硬盘阵列当中,进行文件上传及存储,并收集文件上传成功信息,将信息返回至控制模块;若文件存在,则进入访问量点数的变化判断,判断文件访问量点数的变化是否满足更换存储条件的判断,并对文件进行分块处理;
D、经过判断,根据文件所处的阈值对文件进行分块处理,若判断文件点数变化不满足更换存储条件的判断,表示文件已重复且不需要更换,则直接收集上传或更新失败信息,将信息返回至控制模块;若判断文件的点数有变化,则根据设定的阈值进行分块处理;
根据设定的阈值进行分块处理主要有三种情况:
第一种,判断更换条件是否满足阈值2,经判断满足阈值2,表示该文件信息需要更新,则将文件传送至Hadoop混合式硬盘阵列,存储器集收集更新成功信息,将信息返回至控制模块;若判断更换条件不满足阈值2,则进入是否满足阈值1的判断;
第二种,经过判断更换条件满足阈值1,则根据文件上升或下降判断,文件原本存在的位置,若文件原本存储在Hadoop固态硬盘阵列中则将文件传送至Hadoop混合式硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;若文件原本存储在Hadoop混合式硬盘阵列中则将文件传送至Hadoop传统硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;
经过判断更换条件不满足阈值1,则进入是否满足阈值0的判断;
第三种,经过判断更换条件满足阈值0,则将原本存储在Hadoop固态硬盘阵列、Hadoop混合式硬盘阵列中的文件传送至Hadoop传统硬盘阵列,并进行文件的更换,存储器集收集更新成功信息,将信息返回至控制模块;
经过判断更换条件不满足阈值0,表示文件之前的判断出现错误,此时,存储器集收集更新失败信息,将信息返回至控制模块;
进一步改进,在步骤6中,所述的用户请求为下载文件请求,则进入流媒体文件下载步骤,具体步骤包括:
(1)、分布式存储过程控制模块对文件信息进行验证,经过分析判定后确定文件作处的位置;
(2)、向存储器集发出文件下载的请求;并进行文件的下载,存储器集收集下载信息,将下载结果返回至控制模块;
本发明能够在成本可控的情况下迅速提高流媒体服务系统的并发效率及读写效率,该系统可靠且合理冗余,并且节省电力资源,符合和谐社会发展的要求;当流媒体文件提交至流媒体服务器之时,我们根据流媒体文件的不同特性进行评级并存储在合理的异构存储介质当中,将一些时效性强、访问量大的流媒体文件评为更高的级别,在选择存储时,将其存储在速度更快的存储器上;而对于访问时效性不强的流媒体文件,先将其分块,这样可以带来两个优点:一方面,可以减少Hadoop再次分块的负担;另一方面,有利于流媒体文件访问的倾向性进行专项的访问;
本发明的特点在于:当流媒体文件提交至流媒体服务器之时,我们根据流媒体文件的不同特性进行评级并存储在合理的异构存储介质当中,将一些时效性强、访问量大的流媒体文件评为更高的级别,在选择存储时,将其存储在速度更快的存储器上。而对于访问时效性不强的流媒体文件,先将其分块,这样可以带来两个优点:(1)可以减少Hadoop再次分块的负担;(2)有利于流媒体文件访问的倾向性进行专项的访问;比如某些老电影中经典的段落可能会被反复经常点击;
分块后可以较好的解决某些流媒体文件中只有小部分访问量较大的访问不均衡问题;先将其直接存储在由传统硬盘组成的Hadoop硬盘阵列当中,之后定时获取用户的流媒体访问信息,根据单位时间内用户访问信息的变化情况,对文件存储的位置进行调整,保证让单位时间内请求多的流媒体资源能够随时利用较好的硬盘资源。
本发明不局限于上述具体的实施方式,本领域的普通技术人员从上述构思出发,不经过创造性的劳动,所作出的种种变换,均落在本发明的保护范围之内。