电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

国外海量数据离线存储产品应用

来源:莲生三十二作者:开心麻花2025-11-191

国外海量数据离线存储产品应用(精选6篇)

国外海量数据离线存储产品应用 第1篇

国外海量数据离线存储产品应用

在当先信息技术高速发展的情况下,不同类型的信息、数据爆发式的产生。同时,当今社会及经济发展中需要将从前工作、生活、经济活动所产生的非数字化信息及数据进行数字化处理以方便今后对此类数据进行查询、分拣、处理及备份。此数字化过程同样会产生大量的重要数据。这就需要有相应的系统对此大量的重要数据进行备份及保存。

此种数据的特点是信息重要,数据量大。为了保证数据的安全及完备性,需要对数据进行存储,并与相应的处理设备进行分离。这样做既保证了数据的安全又保证备份数据不会受到处理设备的干扰。尤其在911事件后,对数据安全及数据完整性要求较高的企业及机构意识到需要将相应的数据进行周期性的离线备份并将此离线备份数据与原始数据进行分离保管。所以就需要一种专门快速的可以对大量数据进行离线备份的设备来满足此种功能需要。

国内外许多公司及商业、教育机构都采用离线存储设备解决海量重要数据的备份问题。

1、美国华盛顿大学采用此类设备对自身运作产生的大量实验数据和图书数据进行备份和存储。

2、美国国家图书馆采用此类设备对图书馆中的数字化图书进行备份和保存,从而有效的保存了历史文化遗产。

3、招商银行驻纽约办事处使用此类设备对敏感的客户资料和数据进行有效的保管和存储,从而保证了业务准确和快速的运作与发展。

由国家档案局档案科研所、浙江省档案局和北京汉龙思琪数码科技有限公司共同研发的海量数据离线存储柜,基于24V弱电库房安全保存保管情况,采用高科技集成技术,将多个大容量硬盘进行级联管理,采用离线保存管理系统,对电子数据进行安全、节能、便捷、利用性高的大容量数据离线科学管理。

专业的离线存储系统不仅在档案行业有广泛的市场应用前景,同时在图书、医疗、民政、广播电视、文化、军事等行业也有广泛的应用。它可以作为重要数

据在线存储的安全备份和应急服务,为在线存储的灾后数据恢复等提供安全、稳妥的数据保障。

海量数据离线存储系统可以对不同电子介质的海量数据进行统一的管理,以及对存储介质进行登记接收、备份存储、定期检测、长期保管和利用。

国外海量数据离线存储产品应用 第2篇

1 海量数据存储的设计与实现

通过整体规划、政策调控和规章制度体系保障, 应用现代信息技术, 对基础性、业务性的数据资源进行规范化管理, 建立面向黄委及各机关单位的共享服务体系, 实现数据资源的开放与共用。其核心是基于信息网络、互连互通、资源共享的信息资源基础平台。它通过对黄委各部门的水利信息及其它行业领域的信息最大限度地整合、共享与集成, 为委机关、委属单位及政府提供快速、系统和简洁的各种信息服务, 最终实现黄河的数字化、网络化、可视化和智能化。

黄河数据中心系统业务应用数据的管理主要分为两个层面:其一是基于业务应用, 主要是解决具有不同数据特性数据信息资料 (包括结构化数据信息和非结构化数据信息) 的应用管理, 提供准确、快速的检索手段;另一个层面是针对安全存储, 主要是解决数据的备份与恢复、数据分级存储管理、SAN数据共享等问题, 提供透明的数据访问和安全有效的数据管理。

2 备份与恢复

任何拥有大量数据的业务应用系统, 都必须配备备份与恢复系统以保证数据不会因为逻辑故障而损失, 其包括操作系统的备份与恢复、业务数据的备份与恢复。

备份是对操作系统或者是应用数据做出一个或多个复制版本, 在系统发生问题时可以使用这个复制的版本进行恢复, 使得系统应用中断时间最小、业务数据损失最少。系统中断时间取决于系统架构的搭建, 由于黄河数据采用的双冗余架构和集群技术, 这样就不会因为部分设备损坏而中断, 但其仍然可能因为管理员的误删除操作使系统无法正常运行;业务数据的损失控制取决于备份的粒度, 备份的粒度越密集, 业务数据损失的越小。同时对于应用架构搭建的非常合理的系统采用多点 (位置备份, 几乎可以完全杜绝数据的缺失。

3 数据迁移与数据分级管理

数据迁移是一种可以把大量不经常访问的数据资源存放在磁带库离线介质上, 只在磁盘阵列上保存少量访问频率高的数据资源的技术。当那些磁带介质上数据资源被访问时, 系统自动地把这些数据资源回迁到磁盘阵列中;同样, 磁盘阵列中很久未访问的数据资源被自动迁移到磁带介质上, 从而大大降低投入和管理成本。

黄河数据中心的数据迁移是基于SAN的L A N-F R E E的海量数据迁移模式, 采用LAN-FREE模式迁移数据时, 控制路径与数据路径相分离, 数据迁移指令等控制信息通过LAN发布, 而被迁移的数据则通过基于SAN网络传输调度, 数据迁移效率由此获得提升。

数据的分级存储, 是指数据存放在不同级别的存储设备 (磁盘阵列、磁带库) 中, 通过分级存储管理软件实现数据在存储设备之间的自动迁移。数据分级存储的工作原理是基于数据访问的局部性, 通过将不经常访问的数据自动移到存储层次中较低的层次, 释放出较高成本的存储空间给更频繁访问的数据, 可以获得更好的总体性价比。数据迁移的规则是可以人为控制的, 通常是根据数据的访问频率、保留时间、容量、性能要求等因素确定的最佳存储策略。在分级数据存储结构中, 磁带库作为成本较低的存储资源用来存放访问频率较低的信息, 而磁盘阵列作为成本高、速度快的设备, 用来存储经常访问的重要信息, 从而达到性价比的最大化。

分级存储管理是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备, 然后将磁盘中常用的数据资源按指定的策略自动迁移到磁带库等二级大容量存储设备上。当需要使用这些数据资源时, 分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上。对于用户来说, 上述数据资源迁移操作完全是透明的, 只是在访问磁盘的速度上略显缓慢, 而在逻辑磁盘的容量上明显感觉大大提高了。

4 SAN共享系统

根据黄河数据中心的需求分析, 仅仅依靠应用网络传送数据是远远不能满足海量数据的应用需求。所以, 黄河数据中心可以建立一套基于SAN的共享系统。

SAN的共享系统包括:存储共享和文件共享。存储共享是指将物理存储设备集中在一起进行管理, 并向每一个服务器提供虚拟的专有逻辑地址空间, 但这些服务器系统必须自己管理分配给它的存储空间。文件共享是指将存储在物理存储设备中的文件集中在一起, 由一个管理器进行统一的数据管理和保护, 但它允许多个服务器访问同一逻辑地址空间的内容。

文件共享要确保一个唯一的、即时的、一致的文件视图, 异构系统间的文件共享能提供数据完整性以及简化系统数据管理中的问题。

SAN存储共享以光纤通道为基础, 实现了存储设备的共享, 突破现有的距离限制和容量限制, 服务器通过存储网络直接同存储设备交换数据, 突破了传统的网络瓶颈的限制, 并且支持服务器和存储系统之间的高速数据传输, 释放了宝贵的LAN资源。

SAN的文件共享是在基于光纤通道的SAN的服务器和存储设备间的接口, 采用的是光纤通道协议, 它按照“块地址+偏移地址”来定位数据位置, 并且通过串行SCSI协议采用Block I/O的方式直接从存储设备中存取数据。因此, 在SAN存储环境下, 可以实现异构系统间共享原始磁盘和磁带驱动器, 即允许不同的服务器访问同一个原始磁盘和磁带驱动器 (一般不为终端用户所见) 。

摘要:通过分析黄河数据中心对海量数据存储的要求, 提出了一套完备可行的数据存储管理方案, 包括数据的备份与恢复、数据迁移与分级数据管理和SAN共享系统。

DNA不日或用于存储海量数据 第3篇

研究人员已想出了通过DNA存储数据的一种办法,而DNA可以持续上万年的时间。

研究人员在近日发表于《自然》杂志的一篇论文中称,这种编码方法有望用大概一杯DNA就能存储至少1亿小时的高清视频。

这些研究人员来自位于英国的欧洲分子生物学实验室——欧洲生物信息研究所(EMBL-EBI),他们称已经用DNA存储了经过编码的马丁·路德·金的《我有一个梦想》演讲的MP3文件,以及EMBL-EBI的jpg照片和几个文本文件。

EMBL-EBI这篇研究报告的撰写者之一尼克·戈德曼(Nick Goldman)在声明中说:“我们已经知道,DNA是存储信息的一种有效方法,因为我们能够从数万年前的长毛猛犸象骨头中提取DNA,并且解读DNA密码。DNA还非常小、非常密集,不需要电力就能用于存储数据,所以运输和保存起来很容易。”

读取DNA非常简单,但写入DNA是一大障碍。目前面临两大挑战:首先,如果使用现有方法,只能制造短串的DNA。其次,读取和写入DNA容易出错,相同的DNA字母重复时更是容易出错。

尼克和另一位撰写者——EMBL-EBI副所长伊万·伯尼(Ewan Birney)着手编写克服这两个问题的编码。这种新方法需要合成来自编码信息的DNA。EMBL-EBI与总部位于加利福尼亚州的安捷伦科技公司(Agilent Technologies)合作,传输数据,然后用DNA对数据进行编码。安捷伦公司专门生产电子和生物分析测量仪器,比如示波器和信号发生器。

安捷伦公司从网上下载了文件,然后合成了数十万个代表数据的DNA片段。安捷伦的艾米丽·勒普劳斯特(Emily Leproust)说:“结果看起来像是一粒小小的灰尘。”

随后,安捷伦把样本寄给了EMBL-EBI。那里的研究人员能够测定DNA的序列,并对文件进行了解码,没有出现任何错误。

这不是第一次证明DNA是一种卓有成效的数据存储方法。去年秋天,哈佛大学的研究人员演示了通过DNA二进制代码,以HTML的格式存储700亿本书(书是同一本书)的功能。

研究人员通过DNA标记(DNA marker),创建了二进制代码,以保存这本书的文本,这本书名为《复活:合成生物学将如何通过DNA改造自然和我们人类自己?》。

戈德曼说:“我们发明了一种ECC,这种ECC专门用来处理测序技术——合成(写入)和测序(读取)——往往会出现的那些类型的错误。我们的试验完美无缺,这点很重要;哈佛大学的研究团队遇到了错误,即信息出现了丢失。”

戈德曼特别指出,EMBL-EBI演示了其编码方法可用于存储比那次试验多得多的信息。他说:“从理论上来说,我们可以把世界上的所有数字信息存储起来。”

戈德曼的团队还分析了这项技术的成本效益。预测表明,DNA存储介质实际上适用于不远的将来。比如说,用于存储全球和全国有历史价值的重要信息,以及对你想保存好几代的具有重要个人价值的信息进行长期存档,比如给子孙看的结婚视频。由于存入数据的过程很缓慢,研究人员认为DNA存储介质目前只适用于数据存档。

由于数据大幅增长,研究人员们正在寻求用越来越小的数据包存储数据的方法。

据市场研究公司IDC最新发布的《数字宇宙》研究报告声称,在未来8年,生成的数字数据量将超过40亿兆字节,这相当于地球上每个男人、女人和孩子有5200GB数据。

从现在到2020年,绝大部分数据不是人类生成的,而是机器生成的,许多机器通过数据网络进行联系。比如说,这将包括与其他设备联系的机器传感器以及智能设备。

尼克说:“我们开发了使用分子形式的一种容错编码,我们知道它在合适的条件下可以持续1万年或更长的时间。只要有人知道这编码是什么,要是有能够读取DNA的机器,那么就能把它读取出来。”

研究人员表示,开发过程的下一步是完善编码方法,并且探索实用性,从而为商业上可行的DNA存储模式铺平道路。

-沈建苗编译

海量数据存储系统研究 第4篇

本论文主要以遥感地面站的工程研制为研究背景,对实现地面站数据记录存档子系统的主要技术进行了深入研究,并以此为基础,提出了满足系统工程研制需求的设计方案。

1 系统总体结构设计

海量数据存储系统主要由高速数据采集卡、数据记录服务器、磁带库、RAID磁盘阵列、网络设备、数据记录存档管理软件等组成。

高速数据记录卡完成输入信号ECL到TTL电平的转换、串并转换、数据缓存、数据管理及高速PCI接口。高速数据记录卡上设置4个缓冲区数据,并由数据管理模块来保证不同通道间的数据同步。

数据回放卡采用与数据记录卡类似的PCI技术,并与数据记录卡一同插在数据记录服务器中。工作时,需要解决数据记录卡和数据回放卡的并存和工作协调。

在高速数据的记录系统设计中,高速数据在主机内部的传输受到计算机系统结构的影响,如果在高速数据传输系统的设计中忽略对现代微机系统内部数据传输通道结构的分析,会成为设计系统中的一道潜在的瓶颈。服务器作为系统架构的平台是必不可少的,它必须具有较强的处理能力和较强的I/O能力,才能够适应海量数据存储和交换的要求。

磁盘阵列作为实时数据的存储介质,与高速服务器的接口采用SCSI以保证传输速度。RAID盘具有高速度、高可靠性,支持RAID硬盘具有热插拔功能。支持多种RAID模式,这些RAID功能保证了用户数据的高可用性,保证数据的高可靠性。同时磁盘阵列容量具有扩展性,支持后续任务的增加,易于扩容。数据记录子系统中提供的LTO-2磁带驱动器,作为数据备份设备,用于事后数据的转存。

时码模块主要接收站内时频设备的时间信号,完成时间信息的转换,实现对数据记录存档系统的时间统一,用于数据记录存档数据的时间标记。

卫星数据接收过程中,在记录存档管理软件的管理和调度下,解调后的基带数据I、Q数据实时数据经过高速数据记录卡实时读入服务器,并实时记录在RAID磁盘阵列上。也就是说,在主机管理和调度下,经过解调后的高速基带数据流首先输入到高速数据记录卡,在完成接口匹配及速率调整后进行数据缓冲,然后经主机PCI总线将数据写入到RAID盘上,实时完成卫星数据的记录。卫星过境后将数据事后转存到磁带上。数据记录存档子系统具有卫星侦察数据的网络传输能力,通过千兆网络接口可以实现与外部之间的数据导入与导出。

2 系统存储结构模式

由于每颗遥感卫星设计上的独立性,无论下行数据码速率还是数据格式都没有一个统一的规范。从卫星地面站数据记录系统的发展来看,工作站的处理能力不断提高,所处理数据的码速率和数据容量不断提高,存储技术也不断更新提高。因此,如何选择相对通用的数据存储方法和存储介质,是遥感卫星地面站运行中的一个重要问题。

在存储技术中,应用比较广泛的存储模式有三种:直接连接存储(Direct Attached Storage,DAS)、网络附加存储(Network Attached Storage,NAS)及存储区域网络(Storage Area Networks,SAN)。它们都是以RAID技术为基础,一般都会提供RAID0、1、5的支持。

DAS是指将存储设备直接连接至一台服务器上。NAS是一种特殊的、可以通过网络对各种的系统平台提供文件共享服务、能完成单一或一组指定功能(文件服务、HTTP服务、EMAIL服务等)、基于网络的存储模式。SAN是一种类似于普通局域网的高速存储网络,是一个独立的、专门用于数据存取的高速专用网络。

由于本课题直接应用于遥感地面站的数据记录存档系统,对数据安全性、存储性能要求高,在系统存储方面方面需要有可扩展性和灵活性。同时,站内接收存储的数据存储时物理集中,数据管理逻辑上又彼此独立,并要求能够对物理分散的两个地面站的数据完成高速集中备份。

根据对以上存储设备和存储模式的优缺点的比较,选用DAS与SAN相结合的混合存储结构模式。选择磁盘阵列作为在线存储设备,LTO磁带库作为离线存储设备。

3 结束语

海量数据存储系统是遥感卫星地面站重要的一个组成部分,本文简要介绍了遥感地面站各部分的功能和数据存档系统的总体结构。由于卫星数据存档时,要求达到较高的速率,因此对服务器的选择尤为重要。卫星数据实时接收后存档到RAID磁盘阵列,一定天数后备份到磁带库,系统存储结构选择DAS与SAN相结合的混合存储结构模式。

参考文献

[1]葛成辉,朱正中.气象卫星遥感原理[M].北京:清华大学出版社,1992:13-15.

[2]梅安新,秦其明.遥感导论[M].北京:高等教育出版社,2001:21-23.

[3]伍尚志,杨仁忠.高速遥感卫星数据采集系统的研究与实现[J].微计算机信息,2005(21):69-70.

基于云计算的海量数据存储 第5篇

随着计算机技术的快速发展和网络的日益普及, 越来越多的人利用网络来获取信息、存储资料和进行电子商务。各种类型的网站不断产生, 比如政府利用网络进行公务, 教育行业利用网站资源进行教学的开展, 医院利用网站进行挂号、在线诊疗等等。整个网络产生了巨大的数据量, 如何存储网站中的这些数据, 成为了一项亟待解决的问题。传统的存储方式已经很难满足海量数据存储在容量、性能、存储效率和安全性等方面的要求, 现在常见的海量数据存储技术可以分为直接附加存储[1] (DAS) 和网络存储两种, 其中网络存储又分为网络附属存储 (NAS) 和存储域网络 (SAN) 。但是网络存储量日益增大, 网络中的存储负荷也越来越重, 传统的存储方式不可避免地产生了很多弊端。比如DAS简单易用, 但磁盘利用率很低, 存储分散。NAS对数据库支持不如盘阵和SAN。SAN存储效能优异, 但投资成本太高, 而且数据共享比较困难。

“云[2]”的概念最早是由谷歌公司在2006年底提出, 这就为解决网络中海量数据的存储带来了可能。云计算是一种共享资源的计算模式, 具有强大的信息存储与处理能力。本文首先介绍了云计算中的Map Reduce[3]模式, 该模式是云计算中的核心计算模式, 然后结合Map Reduce模型的Hadoop[3]分布式并行编程框架, 最后提出海量数据存储的技术架构图, 并对基于云计算的海量数据存储进行了分析和研究。

1 云计算环境下的海量数据存储模型

1.1 Map Reduce模型

Map Reduce模式在云计算的计算模式中处于核心地位, 用于大规模数据集的分布式[4]并行运算。map (映射) 和reduce (化简) 是Map Reduce模式的主要思想, 指定一个Map (映射) 函数, 接受一个键值对 (key-value pair) , 产生一组中间键值;Reduce (化简) 函数, 接受一个键, 以及相关的一组值, 将这组值进行合并产生一组规模更小的值 (通常只有一个或零个值) 。Map Reduce的流程如图1所示。

映射 (map) 函数就是对一些独立元素组成的概念上的列表。事实上, 每个元素都是被独立操作的, 而原始列表没有被更改, 也就是说Map操作是可以高度并行的, 这对高性能要求的应用以及并行计算领域的需求非常有用。化简 (reduce) 操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行, 但是因为化简总是有一个简单的答案, 大规模的运算相对独立, 所以化简函数在高度并行环境下也很有用。由图1可见, Map函数的程序将分割后的数据映射成不同块分配给计算机处理, 以此达到分布式计算的效果, 然后利用Reduce函数的程序汇总和输出结果。Map Reduce借鉴了函数式程序设计语言[5]的设计思想, 其软件实现是先指定一个Map函数, Map函数的任务就是完成映射, 即把将输入的对转换为一组中间结果, 然后传给Reduce函数, 再由Reduce把这个中间结果转换为最终结果。Map和Reduce函数之间存在一定的关联性。其函数描述如表1所示。

Map Reduce在处理海量数据的过程中, 运用了数据的局部性原理。Map Reduce的集群采用无共享式的架构, 只需普通PC机就可构成。在数据处理之前, 数据集被分配至各个节点。处理过程中, 由各个节点通过map程序就近读取本地数据, 数据经过map处理后, 再进行归并和排序, 然后再分发给reduce节点, 这样就避免了大量数据的传输, 大大提高了处理效率。Map Reduce集群采用无共享式架构的另一大优势就是集群具有良好的容错性, 一部分节点如果产生死机不会影响整个集群的正常工作。

1.2 Hadoop框架技术简介

Hadoop是一个用于运行应用程序在大型集群的廉价硬件设备上的框架。Hadoop可以为应用程序提供一组稳定而可靠的接口和数据运动。在Hadoop中实现Map Reduce算法, 可以将应用程序分割成许多很小的工作单元, 每个单元可以在任何集群节点上执行或重复执行。Hadoop还提供了一个分布式文件系统用来在各个计算节点上存储数据, 并提供了对数据读写的高吞吐率。因此, 我们也可以这样来理解:Hadoop=HDFS (文件系统) +HBase (数据库) +Map Reduce (数据处理) 。Hadoop的框架结构和内部结构图分别如下表2、图2所示:

Hadoop HDFS分布式文件系统具有高容错性, 并且可以被部署在低价的硬件设备之上。HDFS很适合大数据集的应用, 并且提供了对数据读写的高吞吐率。HBase是一个分布式的开源数据库, 基于Hadoop分布式文件系统, 模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。HBase主要用来处理庞大的数据表, 可以用普通PC机处理超过10亿行的数据, 和有数百万列数据构成的数据表。Hadoop Map Reduce是一个使用简单的软件框架, 基于这个框架写出的应用程序, 能够在大型商用机的集群上运行, 并且以一种可靠容错的方式并行处理TB级别上的数据集。

由图2看出, 海量的数据交给Hadoop处理后, 在Hadoop的内部, Hadoop提供了HDFS和HBase, 来存储或部署到各个计算节点上, 最终再在Hadoop内部对其数据采用Map Reduce的模式进行处理, 然后输出最终的处理结果。

2 海量数据存储模型分析

在对Hadoop框架和Map Reduce的计算模式分析的基础上, 我们来分析下海量数据的存储模型是如何进行架构的。如下图3[6]所示为海量数据的技术架构图:

由上图我们可以看到, 对于海量数据产品技术架构, 我们将其分为5个层次, 从上至下依次是数据源层、计算层、存储层、查询层和输出层。这里, 我们来重点理解1-4层:

1) 数据源层。存放着网站中 (比如教育网站或电子商务网站) 的交易数据。在数据源层产生的数据, 通过Data X, Db Sync和Timetunnel准实时的传输到下面计算层的Hadoop集群中。

2) 计算层。在这个计算层内, 我们采用Hadoop集群, 这个集群是计算层的主要组成部分。在这个集群上上, 系统每天会对数据进行不同的Mapreduce计算。

3) 存储层。在这一层, 我们采用了My Fox和Prom。My Fox是基于My SQL的分布式关系型数据库的集群, Prom是基于Hadoop Hbase技术的一个No SQL的存储集群。

4) 查询层。在这一层中, 有一个数据中间层 (glider) , glider起着接口的作用, 它是通过HTTP协议来对外提供restful方式的接口, 数据获取通过一个唯一的URL地址。同时, 数据查询通过My Fox来查询。

对于海量数据的存储分析, 我们重点来研究技术架构图中的第三层, 也就是存储层。依次对存储层中的My Fox、Prom和glide的技术架构进行分析。

2.1 存储层中的查询代理层My Fox

在这一层中, 底层的数据存储引擎采用了My SQL的默认存储引擎 (My ISAM) , 我们还设计了一个查询代理层My FOX。My FOX基于分布式My SQL的集群, 可以很好应对海量数据的查询。如下图4所示为My FOX的数据查询过程。

在设计My FOX的每一个节点时, 我们采用热节点和冷节点两种节点类型。热节点主要是用来存放最新的以及被访问频率比较高的数据;冷节点主要是用来存放相对陈旧的以及访问频率比较低的数据。在存储这两种类型的节点数据的过程设计中, 我们分别从硬件条件和存储成本的角度考虑, 选择了用两种不同类型的硬盘来存储访问这两种不同类型的节点数据。如下图5所示:

对于“热节点”的数据, 选择了SAS硬盘, 转速为15000转/分。如果按照一个节点使用两台机器来计算的话, 单位数据的存储成本约为4.5W/TB。那么对于“冷节点”的数据, 选择了选择了SATA硬盘, 转速为7500转/分, 单位数据的存储成本约为1.6W/TB。从容量来看, “热节点”的硬盘容量更大, 但是存储成本也相对更高。

2.2 存储层中的Prom

如下图6表示了Prom的数据存储结构, 图7表示了Prom的查询过程:

由图6可以看出, Prom是基于HBase技术的一个存储集群, 在Prom中存放若干的数据属性对, 以备进行查询计算等操作。图7是以商务网站笔记本信息为例, 使用Prom的一个求和运算的查询过程, 通过查索引, 从节点获取数据, 进行运算, 将结果放入缓存。

2.3 数据中间层glider

中间层的作用是用来隔离前后端, 也正基于这个思想来进行设计。中间层glider主要负责各个异构表之间数据的JOIN和UNION等计算, 并起到隔离前端数据和后端存储的作用, 为数据查询提供统一的服务。如下图8所示为glider的技术架构:

除了起到异构“表”之间的数据整合以及隔离前后端的作用之外, glider还有一个很重要的作用就是缓存管理。从图8中可见, 中间层glider实际存在两层缓存, 一级缓存是用来整合之后基于独立请求的作用, 二级缓存是基于各个异构“表” (datasource) 的。除此以外, 在各个异构“表”的内部还可能存在自己表内部的缓存机制。在设计缓存系统的时需要考虑两个问题:缓存穿透[7]和失效时产生的雪崩效应[8]。缓存穿透的含义是查询一个必然不存在的数据。缓存是的写入是在不命中时被动进行的, 出于容错的考虑, 如我们在存储层中查不到数据, 那么就不写入缓存, 这样就会导致每次对这个不存在的数据发出请求都要到存储层进行一次查询, 那么就失去了缓存的意义。我们采用的方法就是如果一个查询返回的数据为空, 对这个空结果仍旧进行缓存, 但要控制它的过期时间最长不能超过五分钟。缓存失效时会产生雪崩效应, 这会对底层系统产生很可怕的冲击, 在设计时我们采用缓存过期机制。从理论角度来看, 能够将各个客户端数据的失效时间在时间轴上进行均匀地分布, 这就在一定程度上避免了缓存失效带来的雪崩效应。

3 结束语

文章提出的海量数据存储架构主要是基于云计算的Hadoop分布式平台和Map Reduce的计算模型。此架构存储层的Myfox可以对不同类型数据进行分类处理, 提高存储效率;Prom集群处理时使用大量低成本低耗的计算机组成, 系统的使用成本降低, 更加经济实用;Glider缓存技术的使用可以有效避免海量数据存储中经常发生的安全问题, 使系统更加有效可靠。该技术架构具有一定的推广价值, 可进一步应用在教育、商务等网站中。

参考文献

[1]侯建, 帅仁俊, 侯文.基于云计算的海量数据存储模型[J].通信技术, 2011, 44 (5) :163-165.

[2]钱戴明, 乐嘉锦.云计算在校园多媒体系统中的应用[J].计算机应用与软件, 2011, 28 (12) :239-242.

[3]多雪松, 张晶, 高强.基于Hadoop的海量数据管理系统[J].微计算机信息, 2010, 26 (5-1) :202-204.

[4]徐小龙, 吴家兴, 杨庚等.基于大规模廉价计算平台的海量数据处理系统的研究[J].计算机应用研究, 2012, 29 (2) :582-585.

[5]程苗, 陈华平.基于Hadoop的Web日志挖掘[J].计算机工程, 2011, 37 (11) :37-39.

[6]彭宏, 杜楠.基于并行数据库的海量商务数据管理系统研究[J].计算机应用研究, 2009, 26 (2) :614-616.

[7]赵宏伟, 宋宝燕, 邵一川.云计算环境下的一种高效的资源管理策略[J].计算机科学, 2012, 39 (2) :212-215.

国外海量数据离线存储产品应用 第6篇

MATLAB全称Matrix Laboratiry, 顾名思义“矩阵实验室”以矩阵和数组为核心, 提供了大量的内置函数以便进行算法开发、数据可视化、数据分析及数值计算等操作, 是一种交互式的应用开发环境。相对于较传统的C、C++或者FORTRAN语言, MATLAB提供高效快速求解各种科学计算问题的方法, 其中, 数学计算功能是MATLAB的重要组成部分, 也是最基础的部分, 包括矩阵运算、数值运算以及各种算法。但是, 我们在使用时常常遇到“out of memory”的错误提示使我们束手无策, 相信读者起初和我有一样的困扰:这是一种怎样的错误呢?这样的错误如何避免或者解决呢?类似这样的问题我们将在本文进行讨论。

二、处理海量数据出错分析

2.1海量数据

对于用户来说, 凡在PC机上处理数据时遇到“out of memory”错误提示的数据量均可称为海量数据, 即数据量很大, 他是相对于当前计算机处理能力而言的, 不同的应用领域, 不同的学科以及不同的硬件条件下海量数据所呈现的数据量也不尽相同。在科学计算中, 我们所使用和分析的数据量越来越多, 如何能利用有限的计算机硬件资源进行快速的海量数据分析成为我们研究与计算的第一步, 所以通过了解MATLAB中数据存储机制而发现其出错的根本原因可以让我们更好的解决这个问题。

2.2MATLAB数据存储机制

由文献[3][4]可知MATLAB创建大矩阵维数与三个因素有关, 分别为MATLAB位数、计算机分配给MATLAB的内存空间和创建矩阵的数据类型。MATLAB有32位与64位, 其所能创建的矩阵维数分别为 维与 维;在MATLAB中可以通过调用memory函数来查看其能利用的最大存储空间;而在MATLAB中创建矩阵时所有的元素是放置在一片连续的内存空间的, 可调用feature memostats查看连续内存空间大小;例如在MATLAB中默认用double型来表示数据变量, 一个数字需要占用8B的存储空间, 矩阵占用的内存空间用矩阵数据元素的个数与每个数据占用的字节的乘积表示, 这样, 在存放一个10000阶的double型矩阵时就需要一个大小为800M的连续空间, 从而看出矩阵存储对连续内存空间的要求很高。

2.3错误原因分析

发生此错误一方面是因为硬件本身内存不能满足大型矩阵存储, 例如若在一个内存总和较大的存储空间中碎片过多, 则意味着此空间中最大连续内存空间不是很大, 这样, 当元素较多的矩阵进行存储时就可能没有足够的空间来存储而发生“out of memory”错误提示。

另一方面, 还可能因为程序设计考虑不周全和一些坏的编程习惯导致错误提示。例如在设计一些变量较多的复杂程序时, 如果不及时释放一些不再会用到的变量所占用的内存时, 随着程序的运行, 变量越来越多, 内存中的碎片也越来越多, 此时再去存储大型矩阵时将会发生此类错误。

三、处理“out of memory”错误的方法

3.1有效地增加可用内存的方法

由上文可知出现“out of memory”错误的本质原因是所需连续内存大于系统所能提供的内存, 所以, 我们首先想到的是如何增加内存使问题得到改善。一个显而易见的解决方法是从物理上增加内存容量, 但是这往往会受到机器自身的限制, 而且无疑要增加系统成本, 因此这种方法是受到限制的。另一种方法是从逻辑上扩充内存容量, 这就用到了虚拟存储技术。

所谓的虚拟存储器[5], 是指具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统, 其逻辑容量由内存容量和外存容量之和所决定, 使用户看到的内存容量远远大于实际内存容量。由于32位Windows操作系统的限制, 每个进程最多只能使用2GB的虚拟内存地址空间, 因此MATLAB的可分配内存也受到相应的限制, 所以可以利用Windows的3GB开关使每个进程可以多分配1GB的虚拟内存空间。

3.2减少内存消耗的方法

不合理的编程技巧和习惯同样致使“out of memory”错误的出现, 所以, 在资源有限的条件下我们如何应用高效的编程技巧来提高程序质量是规避此错误的关键, 参考文[2]结合自已的实践概括如下:

(1) 在读取大型数据文件时, 我们需要的并不是整体而只是部分数据, 此时可以有选择的进行导入避免“冗余”数据占用宝贵的内存空间;如果读取的文件格式复杂并且体积较大时可使用textscan函数进行有选择的高效读取, 可挑出所需的行或列即可, 此函数返回的数据存放在cell数组中, cell数组是MATLAB中较为独特的数据类型, 由一系列cell组成, 每个cell中可以存放不同类型的数据, 如果导入到cell数组的数据均为数值型即可将其转化成数值矩阵以节省内存空间。

(2) 根据问题的需要我们要选择适当的数据类型, 由于cell型的数组不需要连续的内存空间来存储, 所以即使空的cell型数组每个cell单元也要占用4B的内存空间。一个空的结构数组更是要占用124B的内存空间, 由此可以得出在设计程序时应尽量采用double型数组。

(3) 对于含有零元较多的矩阵通常采用稀疏矩阵来存储, 假设存储一个含有m个零元素的n阶double型矩阵, 如果使用常规的方法存储, 我们需要建立一个内存容量为 (8n2) B的空间, 而采用稀疏矩阵存储时则只需 (8m) B的连续内存空间即可, 当m远小于n, 即矩阵中非零元素个数远远小于零元个数, 矩阵稀疏性十分强时, 这种存储方式的内存节省将表现的更为明显。在实际中很多大型的线性规划问题的约束矩阵的稀疏性都很强, 如果不采用稀疏矩阵形式表示, 惊人的计算量以及内存消耗量会使得在计算机上几乎无法求解大型规划问题。

(4) 在程序设计阶段, M文件中的每个模块实现功能不同所需数据变量也不尽相同, 更有些早早使用过得变量在之后的程序中将不再调用, 如果这些对后面程序“无用”变量在整个程序运行过程中依然存在, 将占用大量的内存使内存碎片增多, 随着程序的运行就可能发生“out of memory”的错误提醒。所以, 在程序设计时应对每个变量进行分析, 将先前有用而后无用的变量进行输出或记录后运用MATLAB中的clear函数及时清除, 从而保证了程序拥有较大的内存运行。

四、总结

在利用MATLAB处理海量数据时, 我们不仅要寻求一台性能良好的计算机进行运算, 还需要学会在现有的条件下利用计算机知识扩充自己PC机的虚拟内存, 有效地利用虚拟内存减少系统成本或更新设备的成本;同时, 还要养成良好的编程习惯, 在程序设计过程中不要只考虑程序实现效果而忽略程序本身质量和存储运算等效率, 及时地释放空间不仅为程序提供一个良好运行环境, 还节省了运行时间避免了不必要的内存溢出错误。

摘要:本文针对MATLAB处理海量数据过程中常常出现的“out of memory”问题进行分析, 探究了MATLAB中的数据需要连续内存空间存储的机制。从问题本质出发, 找到了有效增加可用内存——扩充虚拟内存方法和适当减少内存消耗的若干方法来规避内存溢出问题的出现。

关键词:MATLAB,海量数据,内存溢出,数据存储机制,虚拟存储空间

参考文献

[1]薛山.MATLAB基础教程编著[M].北京:清华大学出版社, 2011, 3.

[2]吴鹏.MATLAB高效编程技巧与应用25个案例分析[M].北京:北京航空航天大学出版社, 2010, 6.

[3]敖莉, 于得水, 舒继武, 等.一种海量数据分级存储系统THTS[J].计算机研究与发展, 2011, 86 (6) :1089-1111.

[4]张德山, 李海浩.海量数据存储管理方法的研究[J].信息化研究, 2011, 37 (4) :4-7.

国外海量数据离线存储产品应用

国外海量数据离线存储产品应用(精选6篇)国外海量数据离线存储产品应用 第1篇国外海量数据离线存储产品应用在当先信息技术高速发展的情况...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部