一种数据读写方法和系统技术方案

技术编号:12453522 阅读:88 留言:0更新日期:2015-12-04 17:33
本发明专利技术公开了一种数据读写方法和系统,包括:利用预选的应用程序接口API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中。利用预选的压缩算法对预设的压缩目录中存储的数据进行压缩,并将压缩后的数据存放到底层vfs中。将底层vfs中存放的数据写到磁盘中。通过本发明专利技术的方案,能够加速hadoop文件系统的读写速度。

【技术实现步骤摘要】

本专利技术涉及文件系统设计领域,具体涉及一种数据读写方法和系统
技术介绍
引用麦肯锡的一句话:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来。”企业内部的经营交易信息、互联网世界中的商品物流信息,互联网世界中的人与人交互信息、位置信息等,其数量将远远超越现有企业IT架构和基础设施的承载能力,实时性要求也将大大超越现有的计算能力。如何盘活这些数据资产,使其为国家治理、企业决策乃至个人生活服务,是大数据的核心议题,也是云计算内在的灵魂和必然的升级方向。数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据爆炸性增长带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据对企业的重要性。在大数据环境下,数据的存储同样也是个问题。如何存储大量的文件和计算一直是人们所关注的。
技术实现思路
为了解决上述问题,本专利技术提出了一种数据读写方法和系统,能够加速hadoop文件系统的读写速度。为了达到上述目的,本专利技术提出了一种数据读写方法,该方法包括:利用预选的应用程序接口 API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中。利用预选的压缩算法对预设的压缩目录中存储的数据进行压缩,并将压缩后的数据存放到底层vfs中。将底层vfs中存放的数据写到磁盘中。优选地,该预选的应用程序接口 API为用户态文件系统fuse提供的API接口。该预选的压缩算法为实时数据无损压缩Izo压缩算法。优选地,该方法还包括:在对数据进行压缩之前,预先根据hdfs系统对大于或等于预设的大小阈值的数据进行分块存储的特性,并且根据支持分片以及压缩速度大于或等于预设的速度阈值的压缩要求选择压缩算法。优选地,该方法还包括:当hdfs系统从磁盘读取数据时,通过Izo压缩算法对读取到的数据进行解压缩,并将解压缩后的数据利用fuse系统提供的API接口发送给hdfs系统的下层应用。为了达到上述目的,本专利技术还提出了一种数据读写系统,该系统包括:存储模块、压缩模块和读写模块。存储模块,用于利用预选的应用程序接口 API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中。压缩模块,用于利用预选的压缩算法对预设的压缩目录中存储的数据进行压缩,并将压缩后的数据存放到底层vfs中。读写模块,用于将底层vfs中存放的数据写到磁盘中。优选地,预选的应用程序接口 API为用户态文件系统fuse提供的API接口。预选的压缩算法为实时数据无损压缩Izo压缩算法。优选地,该系统还包括:预选择模块。预选择模块,用于在对数据进行压缩之前,预先根据hdfs系统对大于或等于预设的大小阈值的数据进行分块存储的特性,并且根据支持分片以及压缩速度大于或等于预设的速度阈值的压缩要求选择压缩算法。优选地,该系统还包括:解压缩模块。解压缩模块,用于当hdfs系统从磁盘读取数据时,通过Izo压缩算法对读取到的数据进行解压缩,并将解压缩后的数据利用fuse系统提供的API接口发送给hdfs系统的下层应用。与现有技术相比,本专利技术包括:利用预选的应用程序接口 API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中。利用预选的压缩算法对预设的压缩目录中存储的数据进行压缩,并将压缩后的数据存放到底层vfs中。将底层vfs中存放的数据写到磁盘中。通过本专利技术的方案,能够加速hadoop文件系统的读写速度。【附图说明】下面对本专利技术实施例中的附图进行说明,实施例中的附图是用于对本专利技术的进一步理解,与说明书一起用于解释本专利技术,并不构成对本专利技术保护范围的限制。图1为本专利技术的数据读写方法流程图;图2为本专利技术的数据读写方法整体架构图;图3为本专利技术实施例的CPU计算时间换取存储时间的示意图;图4为本专利技术的数据读写系统组成框图。【具体实施方式】为了便于本领域技术人员的理解,下面结合附图对本专利技术作进一步的描述,并不能用来限制本专利技术的保护范围。充分考虑hadoop集群上数据量很大的情况,这样在读写文件时,系统的瓶颈主要是磁盘的读写速度上。本专利技术主要是针对这个瓶颈,利用机器本身的大量闲置的CPU时间来换取读写的时间。从而实现了充分利用闲置的系统资源达到提升系统性能的方法。本专利技术开发出一款Iinux平台下的应用程序,它会自动接收分布式文件系统hdfs的数据,然后进行压缩,最后存储到磁盘上。当hdfs读取数据时,该应用程序会自动解压缩从而还原数据,这样传递给上层hdfs的数据是不变的,实现了透明性。本专利技术的内容是对大数据的文件存储的优化,加快数据在磁盘上的读写速度。为了达到上述目的,本专利技术提出了一种数据读写方法,如图1、图2所示,该方法包括:S101、利用预选的应用程序接口 API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中。优选地,该预选的应用程序接口 API为用户态文件系统fuse提供的API接口。在本专利技术实施例中,为了不降低系统的整体性能,要用到内核模块的支持,但是为了编程方便,必须提供用户态的编程接口。传统上操作系统在内核层面上对文件系统提供支持时,通常内核态的代码难以调试,生产率较低,因此,为了避免此问题,这里采用支持用户空间文件系统的内核模块为fuse,它是完全在用户态实现的文件系统,目前Linux通过内核模块对此进行支持。S102、利用预选的压缩算法对预设的压缩目录中存储的数据进行压缩,并将压缩后的数据存放到底层vfs中。优选地,该方法还包括:在对数据进行压缩之前,预先根据hdfs系统对大于或等于预设的大小阈值的数据进行分块存储的特性,并且根据支持分片以及压缩速度大于或等于预设的速度阈值的压缩要求选择压缩算法。优选地,该预选的压缩算法为实时数据无损压缩Izo压缩算法。hadoop的文件系统hdfs向磁盘存放的数据具有数据量大而且分块的特点,但是每一块的大小具有一个很小的上限。hadoop的文件系统hdfs存放数据时,会把大文件分成最小64M的块来存放到磁盘上。,充分考虑到hadoop的文件系统hdfs是分块存储当前第1页1 2 本文档来自技高网...

【技术保护点】
一种数据读写方法,其特征在于,所述方法包括:利用预选的应用程序接口API将分布式文件系统hdfs要写到虚拟文件系统vfs的数据存储到预设的压缩目录中;利用预选的压缩算法对所述预设的压缩目录中存储的所述数据进行压缩,并将压缩后的所述数据存放到底层vfs中;将底层vfs中存放的所述数据写到磁盘中。

【技术特征摘要】

【专利技术属性】
技术研发人员:周国浪王欢
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

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

1