基于hdfs的准实时数据存储方法技术

技术编号:13899957 阅读:224 留言:0更新日期:2016-10-25 14:06
一种基于hdfs的准实时数据存储方法,由客户端、本地文件系统、hdfs和hbase实现,在收到消息后,先将消息序列化并压缩后作为小文件顺序存储到本地文件系统,在小文件的绝对位置确定后,重新计算小文件的相对位置以追加为一个大文件来保证文件的完整性,且大文件依然可分割,然后异步追加小文件到hdfs中,从而在保证数据可靠性和吞吐量的同时,能够对数据进行准实时的随机读取,提高了数据的查询速度。

【技术实现步骤摘要】

本专利技术涉及互联网信息采集的
,具体说是一种基于hdfs的准实时数据存储方法
技术介绍
hdfs,Hadoop Distributed File System,即分布式文件系统,具有高容错性的特点,因而通常部署在低成本的硬件上。另外由于它能够提供高吞吐量来访问应用程序的数据,特别适用那些有着超大数据集(large data set)的应用程序。hdfs放宽了POSIX的要求这样可以实现流的形式访问(streaming access)文件系统中的数据。hdfs对外提供流数据存储和文件上传接口,流数据存储虽然可以提供准实时查询,但需要内存来缓存数据以提高吞吐量,因而在系统出现颠簸时可能造成数据丢失,并造成文件不完整或者损坏;而批量接口在需要准实时查询时存在数据延迟,延迟大小取决于文件块的大小。另外,由于hdfs仅适合数据的批量查询和流式遍历,本身无法提供随机读取,在需要随机读取数据做数据效果检查时,只能遍历整个文件,造成时间和资源的浪费。
技术实现思路
本专利技术要解决的技术问题是提供一种基于hdfs的准实时数据存储方法。本专利技术为解决公知技术中存在的技术问题所采取的技术方案是:本专利技术的基于hdfs的准实时数据存储方法,由客户端、本地文件系统、hdfs和hbase实现,包括以下步骤:A、客户端接受消息,将消息序列化并压缩后作为小文件存储到本地文件系统;B、完成本地文件系统的写入并获取上述消息所对应各小文件的绝对位置后,重新计算各小文件相对于组合出该消息的整体大文件的相对位置;C、将上述的相对位置存储到hbase,并计算出消息的循环冗余校验码作为hbase的行主键;D、根据预设的刷新间隔或者预定的文件大小,截断该小文件并创建新文件;E、监控已完成的小文件,将其异步上传至hdfs,通过append接口追加到hdfs的文件,构建成大块文件;F、异步刷新消息的位置到hbase。本专利技术还可以采用以下技术措施:步骤A中的各小文件在本地文件系统中顺序存储。本专利技术具有的优点和积极效果是:本专利技术的基于hdfs的准实时数据存储方法中,在收到消息后,先作为小文件顺序存储到本地文件系统,在小文件的绝对位置确定后,重新计算小文件的相对位置以追加为一个大文件来保证文件的完整性,且大文件依然可分割,然后异步追加小文件到hdfs中,从而在保证数据可靠性和吞吐量的同时,能够对数据进行准实时的随机读取,提高了数据的查询速度。附图说明图1是本专利技术的基于hdfs的准实时数据存储方法的步骤示意图。具体实施方式以下通过附图具体实施例对本专利技术进行详细说明。本专利技术的基于hdfs的准实时数据存储方法,由客户端client、本地文件系统localfile、hdfs和hbase实现,包括以下步骤:A、客户端client接受消息,将消息序列化并压缩后作为小文件存储到本地文件系统localfile,即图中所示writemsg步骤;B、完成本地文件系统的写入并获取上述消息所对应各小文件的绝对位置后,将绝对位置返回client,即图中虚线箭头loction所示;重新计算各小文件相对于组合出该消息的整体大文件的相对位置,该步骤如图中弧线recalculateloction所示;C、client将上述的相对位置loction存储到hbase,并计算出消息的循环冗余校验码作为hbase的行主键;D、根据预设的刷新间隔或者预定的文件大小,截断该小文件并创建新文件,如图中flush箭头所示;E、监控已完成的小文件,将其异步上传至hdfs,通过append接口追加到hdfs的文件,构建成大块文件,该步骤由图中appendflush箭头所示;F、client异步刷新消息的位置到hbase,该步骤由图中最低端箭头所示。步骤A中的各小文件在本地文件系统中顺序存储,在本地使用机械硬盘即可最大满足吞吐量要求。本专利技术的基于hdfs的准实时数据存储方法中,在收到消息后,先作为小文件顺序存储到本地文件系统,在小文件的绝对位置确定后,重新计算小文件的相对位置以追加为一个大文件来保证文件的完整性,且大文件依然可分割,然后异步追加小文件到hdfs中,从而在保证数据可靠性和吞吐量的同时,能够对数据进行准实时的随机读取,提高了数据的查询速度。以上所述,仅是本专利技术的较佳实施例而已,并非对本专利技术作任何形式上的限制,虽然本专利技术已以较佳实施例公开如上,然而,并非用以限定本专利技术,任何熟悉本专业的技术人员,在不脱离本专利技术技术方案范围内,当然会利用揭示的
技术实现思路
作出些许更动或修饰,成为等同变化的等效实施例,但凡是未脱离本专利技术技术方案的内容,依据本专利技术的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本专利技术技术方案的范围内。本文档来自技高网
...

【技术保护点】
一种基于hdfs的准实时数据存储方法,由客户端、本地文件系统、hdfs和hbase实现,其特征在于,包括以下步骤:A、客户端接受消息,将消息序列化并压缩后作为小文件存储到本地文件系统;B、完成本地文件系统的写入并获取上述消息所对应各小文件的绝对位置后,重新计算各小文件相对于组合出该消息的整体大文件的相对位置;C、将上述的相对位置存储到hbase,并计算出消息的循环冗余校验码作为hbase的行主键;D、根据预设的刷新间隔或者预定的文件大小,截断该小文件并创建新文件;E、监控已完成的小文件,将其异步上传至hdfs,通过append接口追加到hdfs的文件,构建成大块文件;F、异步刷新消息的位置到hbase。

【技术特征摘要】
1.一种基于hdfs的准实时数据存储方法,由客户端、本地文件系统、hdfs和hbase实现,其特征在于,包括以下步骤:A、客户端接受消息,将消息序列化并压缩后作为小文件存储到本地文件系统;B、完成本地文件系统的写入并获取上述消息所对应各小文件的绝对位置后,重新计算各小文件相对于组合出该消息的整体大文件的相对位置;C、将上述的相对位置存储到hbase,并计算出消息...

【专利技术属性】
技术研发人员:吴广学
申请(专利权)人:天津海量信息技术股份有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1