梁俊荣
〔摘要〕Hadoop中的HDFS是大数据存储处理的关键技术,HDFS在存储海量数据集中有着高效、可靠的优点。为解决图书馆传统关系型数据库在海量数据存储和访问效率中存在的瓶颈问题,本文提出了一种基于Hadoop的图书馆复合大数据存储系统。该复合大數据存储系统能够满足图书馆大数据存储需求,提高大数据存储效率,可高效保障图书馆大数据决策的需求。
〔关键词〕Hadoop;图书馆;大数据;存储系统
DOI:10.3969/j.issn.1008-0821.2017.02.012
〔中图分类号〕G25076〔文献标识码〕A〔文章编号〕1008-0821(2017)02-0063-05
〔Abstract〕HDFS in Hadoop is one of the key technologies of large data storage treatment,HDFS is efficient and reliable in large data storage.To solve the bottleneck problems of the traditional relationship database in compound big data storage and access efficiency of library,in this paper,a compound big data storage system design for library based on hadoop was proposed.The compound big data storage system could solve the problem of big data storage in library,could improve the efficiency of big data storage,and satisfied the big data decision demand of library.
〔Key words〕Hadoop;library;big data;storage system
随着云计算技术、传感器网络技术、移动宽带传输技术和终端设备制造技术的发展,图书馆的服务模式和读者阅读方式发生了巨大变革,以读者为中心的个性化服务定制和服务内容的智能推送,已经成为图书馆当前的主要服务模式。在服务模式和读者阅读方式多样化发展的同时,图书馆的用户服务数据和读者阅读相关数据快速递增,已从TB、PB量级向EB量级急速增长,当前,图书馆数据环境已具有海量(Volume)、快速(Velocity)、多类型(Variety)、难辨识(Veracity)和低价值密度(Value)的大数据5“V”特性,图书馆已进入大数据时代[1]。
图书馆大数据主要由用户服务数据、IT基础设施运行数据、视频监控数据、读者个体特征数据、读者阅读行为数据、服务器监控数据、传感器网络数据、阅读终端数据等组成。这些大数据每年平均以50%的速度快速激增,其中非结构化和半结构化数据占据大数据总量的85%以上。此外,图书馆大数据决策系统对数据的存取具有高效、精准、快速和实时的要求,传统的关系型数据存储系统已不能满足图书馆大数据海量、指数级增长、快速存取、高吞吐率的存储需求,因此,必须构建新型的大数据存储系统,才能满足图书馆大数据管理与决策的需求。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,实现了一个分布式文件系统(Hadoop Distributed File System,简称HDFS),用户可以在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。HDFS具有高可靠性、高可扩展性及高容错性的特点,并且设计用来部署在低廉的(Low-cost)硬件设备上。同时,它支持以高吞吐量(High Throughput)来访问应用程序的数据,适合那些有着超大数据集的应用程序[2]。2004年,Google公司提出的MapReduce编程模型,解决了大型分布式计算中的编程模型问题[3]。2006年,雅虎将Hadoop项目从Nutch搜索引擎项目中独立,成为Apache的一个单独子项目。随后,Apache基金会根据MapReduce模型开发出开源的大数据处理框架Hadoop,在Yahoo、IBM、百度等公司得到了大量的应用和快速推广[4]。截至2013年10月,Hadoop220版本已经成功发布,Facebook、阿里巴巴、百度和腾讯都采用Hadoop部署了大数据处理平台[5]。针对图书馆大数据环境特点,基于Hadoop技术构建图书馆大数据存储系统,它可满足图书馆对复杂大数据的存储、查询、分析和决策的需求。
1图书馆大数据存储的需求与挑战
大数据时代,伴随数据总量和数据环境复杂度的快速增长,图书馆对数据库系统的安全性、存储容量、管理效率、读写性能、存储经济性和可扩展性等提出了更高的要求,要求存储系统具有较高的安全性、集成度、稳定性、可控性和可扩展性,能够满足图书馆海量数据存储管理与大数据决策的需求。
11大数据存储海量和快速的需求
当前,伴随图书馆服务模式和读者阅读方式多样化的发展,图书馆的数据总量已从TB、PB量级向EB量级急速增长,这些以指数级快速增长的大数据对图书馆的存储系统提出了新的要求,首先要求存储系统具有高数据吞吐量、准确和动态存取的特点,能够根据大数据采集、传输和决策需求,实现多个不同地点的部署和具有广域扩展的能力。其次,针对读者个性化服务对大数据决策实时性的需求,大数据存储系统应实现快速的数据存储、查询、读取和传输操作,为图书馆大数据决策提供可靠的数据存储与读取支持。第三,图书馆大数据具有多数据源和多结构类型的特点,其大数据存储也以非结构化数据和半结构化数据存储为主。针对不同的大数据总量、数据类型和存储模式需求,大数据存储系统在设计上应采取多种数据存储格式和存储介质并存的特点。
12大数据存储的安全性需求
大数据存储安全性,是关系图书馆服务可靠性和读者隐私保护有效的关键问题。首先,图书馆大数据存储系统应保证数据的完整性,确保数据不被截获、监听、窃取、篡改、复制、破坏或丢失。并能够通过图书馆部署的数据安全监控和网络安全监控设备,对与大数据存储相关的数据存储系统、网络传输系统、数据采集系统、数据传输节点和应用软件进行安全监控,及时发现大数据存储面临的安全问题。其次,应通过用户访问权限授权、限制和特权审核的方式,对访问数据库存储系统的图书馆员工和其它访问者,进行身份与访问权限限制,防止恶意用户通过获取超级权限来访问和侵犯大数据库[6]。第三,图书馆网络是图书馆大数据存取的载体,如何通过有效检查大数据存储区域网络的安全性和存储安全控制日志(比如防火墙、IDS和用户访问日志等),是及时、准确地发现图书馆大数据存储安全问题的重要步骤。第四,图书馆如何实现大数据的快速备份、过期敏感数据擦除和数据灾难恢复,也是提升大数据存储系统安全可控性应重点关注的问题。
13应确保大数据存储可靠和可用
大数据具有高价值总量和低价值密度的特点,图书馆可通过对大数据的噪声过滤和价值挖掘,来提升大数据的价值密度与可用性,因此,图书馆允许大数据存储系统在一定范围内存在少量的数据错误。首先,图书馆传统的将数据强制写入磁盘、双控制器等冗余备份方式,虽然能够保证数据具有较高的准确性和可灾难恢复特性,但在大数据备份中存在着高成本和低效率的问题,不能满足大数据备份的需求。其次,基于SAN或NAS网络的传统数据存储模式,因网络传输带宽远低于大数据存储系统数据读写的速率,无法满足图书馆EB级别大数据存储的需求,可能会因为所查询的大数据传输至决策系统,或者决策系统的计算结果写入存储系统的过程有较长的时延,而导致大数据决策应用的实时性下降。而基于Hadoop的大数据存储系统采用的DAS(直连式存储,Direct-Attached Storage)方式虽然大幅降低了数据存储的网络传输时延,但存在着跨节点数据访问管理和存储数据块管理等问题[7]。第三,为了降低圖书馆大数据的存储成本,图书馆会采用众多价格低廉的存储设备存储数据,如何依靠容错软件和故障监控系统大幅降低多点存储设备的故障率,是图书馆大数据可靠存储应关注的问题。第四,大数据决策应用涉及图书馆的所有部门、业务和系统平台,在同一时刻存在着多用户、多主机并发访问大数据存储系统的情况,因此,在多用户并发访问环境下如何保证大数据存储系统安全、高效、经济和可靠,是图书馆面临的又一严峻挑战。
14大数据存储系统应具备较强的可兼容性
数据采集源和数据结构多样性是图书馆大数据的一个显著特征,首先,当前半结构化及非结构化数据占据图书馆大数据总量的85%以上,而且随着图书馆服务模式和读者阅读方式多样化的发展,非半结构化和非结构化数据占据图书馆大数据的比例将进一步攀升,图书馆传统的结构化数据库无法满足海量、复杂非结构化数据的存储需求[8]。其次,图书馆大数据的存储和读取是面向多数据源、多决策应用系统和多存储节点的数据操作,因此,大数据存储系统的数据接口必须兼容不同设备的数据传输机制,并根据大数据决策需求提供相应的数据读取服务(针对决策系统对大数据的海量快速传输、数据交互式查询和数据批处理等),提供统一和强兼容性的大数据读写接口。第三,大数据存储系统应根据不同的大数据应用对数据存取效率的特殊需求,将大数据决策中频繁访问的热点数据和实时决策数据等,从大数据存储库中提取并放置于内存或Flash(SSD)中,以满足大数据决策中对海量数据的实时、极速传输需求。
15大数据存储经济性关系大数据应用有效性
降低大数据存储成本是提升图书馆大数据决策收益率的关键。首先,图书馆在大数据存储系统的构建中,应通过新颖、简捷和经济的存储架构,对原有的存储系统平台进行升级和无缝链接,在保证数据存储业务连续性的前提下,降低大数据存储系统建设成本的投入。其次,应根据不同类型大数据对存储的安全性、复杂性、吞吐速率和存储成本的不同需求,对不同存储需求的大数据选择不同的存储介质和存储策略,以此实现大数据的分级储存,在增加大数据存储灵活性和可控性的同时,实现大数据存储总成本的大幅下降。第三,在满足图书馆大数据灾难恢复和可靠性需求的前提下,还应尽可能地通过删除重复数据来提升存储空间的使用效率,并通过存储虚拟化技术实现大数据存储系统的多用户共享。第四,如何将大数据存储系统与相关的网络传输系统、服务器系统有效融合,提升大数据存储系统与存储相关平台系统的兼容性,也是保证大数据存储经济性的关键[9]。
2基于Hadoop的图书馆大数据存储系统的设计与存储管理21基于Hadoop的图书馆大数据存储系统的设计
首先,基于Hadoop的图书馆大数据存储系统,可以有效利用图书馆传统的廉价存储服务器集群设备构建,具有较强的存储容错性、可扩展性、低故障率和透明存储的优点,特别适合存储图书馆系统运行参数数据、读者阅读行为监控数据、传感器网络数据、阅读终端设备参数数据等半结构化和非结构化大数据[10]。其次,基于Hadoop的图书馆大数据存储系统具有较低的系统建设、运营和管理成本,众多小容量低端存储设备采用分布部署和就近存储的原则,消除了因网络传输带宽不足可能带来的大数据决策瓶颈问题。此外,存储模型具有快速、低故障率、经济和透明的优点,有效避免了大数据的体量、文件大小和文件数量等方面对存储系统的限制。本文设计的基于Hadoop的图书馆大数据存储系统组织结构如图1所示:
基于Hadoop大数据存储系统的数据收集层,主要实现结构化数据、半结构化数据和非结构化数据的收集、定义和类型划分,Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将关系型数据库中的数据导入到Hadoop的HDFS中,实现数据集在Hadoop和传统数据库之间转移,是大数据存储系统中数据传输的重要工具[11]。文件存储层是支持Hadoop计算框架的分布式大数据存储系统,其基于大量的廉价存储服务器设备构建,具有高容错、可扩展和高并发的优点,可支持巨量大数据决策者快速并发访问、查询和下载。此外,还支持存储系统不停机动态扩容,以及数据正确性的自检、复制、备份和恢复。数据存储层主要由Hcatalog、HBade、Redis组成,Hcatalog是apache开源的对于表和底层数据管理的统一服务平台,主要完成多种数据处理工具之间的通信,以及应用程序的数据被其他应用程序在使用前的发现。HBase是一个分布式的、面向列的开源数据库,HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,HBase在Hadoop之上提供了类似于Bigtable的能力。Redis存储系统支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,这使得Redis可执行单层树复制,同步有助于提高大数据读取操作的可扩展性和数据冗余性[12]。大数据存储系统的统一数据接口可兼容不同设备的数据传输机制,并根据大数据决策需求提供相应的数据读取服务(针对决策系统对大数据的海量快速传输、数据交互式查询和数据批处理等)需求,提供统一和强兼容性的大数据读写接口。大数据决策层基于大数据存储层的支持,为图书馆业务部门提供大数据分析和决策支持。系统平台配置与调度层主要负责平台系统的参数配置和确保系统兼容性,并为大数据存储系统不同的结构层调度、分配系统资源。平台管理层主要负责对大数据存储安全性、运行效率、可靠性、经济性和可控性的管理工作。
22基于Hadoop存储系统存储性能的扩展和优化
图书馆大数据存储具有数据海量、大数据量文件比例高、并发访问量巨大,以及对大数据库进行文件并发读取操作远大于写入操作的特点,因此,基于Hadoop的大数据存储系统运行策略应支持多客户机并发高速读取操作,有较高的存储效率和较低的存储成本,并支持存储系统依据大数据冗余备份的需求,执行相应的数据备份策略。基于Hadoop的大数据存储系统的可扩展性存储流程如图2所示。
NameNode负责管理文件系统的命名空间,主要维护文件系统树及整棵树内所有的文件目录结构和文件元数据。这些信息以两个文件形式(命名空间镜像文件和编辑日志文件)永久地保存在本地磁盘上,NameNode记录着每个文件中各个块所在的数据节点信息,存储节点数据块的位置信息在系统启动时由数据节点重建。大数据存储节点(DataNode)是大数据的存储单元,当图书馆业务部门在大数据决策中需要读取数据时,首先应当访问NameNode以获取文件的信息和数据分布特征,进而可依据获取的信息从存储节点读取数据。当用户从NameNode获取数据相关信息之后,后期重复读取这些数据时就不需要再次访问NameNode,客户端可以依据以前获得的文件目录信息从存储节点读取数据。此外,图书馆还可根据大数据存储需求,通过增加DataNode的节点数量实现大存储能力的横向扩展,仅需要将所增加的DataNode加入到NameNode中进行管理即可,基于Hadoop的大数据存储系统具有高数据吞吐量、透明存储、低复杂度和经济性强的优点[13]。
23采用基于动态存储副本备份的容错模式
基于Hadoop的大数据存储系统通过存储节点的扩展,有效地满足了图书馆大数据总量指数增长对存储系统存储能力快速扩展的需求,但随着廉价存储节点数量和复杂度的上升,其存储节点的故障率也将快速增长,将导致大数据存储的安全性和可靠性下降。因此,为了确保大数据存储系统的数据安全、可靠、可控和可用,必须结合基于Hadoop大数据存储系统的结构特点,设计符合图书馆大数据存储安全需求的数据备份与灾难恢复策略,才能保证图书馆大数据存储系统安全、可用。本文设计的基于Hadoop大数据存储系统的动态存储副本放置策略如图3所示:
若干个存储节点服务器共同放置在同一机架上,在同一机架上放置的存储节点服务器具有较高的数据传输吞吐率和可靠性。为了提升大数据存储的安全、可靠性,诸如机架1上的DataNote2存储节点,用户在向存储系统的DataNode2节点写入数据时,DataNode2会将写入的数据复制写入其他相临DataNode1、DataNode3、DataNode4中(对于普通的大数据文件采用3份复制的策略,而对于敏感的大数据文件则采用6份复制的策略),以及相临机架2中的DataNode7节点中,如果存储节点DataNode1失效,DataNode1则会首先向位于同一机架的最近相临节点发出请求,重新在备份节点中下载并获得失效节点的备份数据[14]。当位于同一机架的所有存储节点均损毁时,则从其它机架的备份存储节点中恢复丢失、损坏的数据,具有较高的数据灾难恢复效率和经济性。为了提升图书馆大数据动态存储副本备份的效率,数据管理员可根据大数据的安全级别、访问频率、出错概率、存储时间、系统可靠性、网络状况等因素,动态综合设定、添加或删除备份存储节点的数量,不断提升大数据存储系统的存储空间利用率和数据灾难恢复效率。
3结束语
伴随大数据总量、数据结构多样性和数据环境复杂度的快速增长,图书馆传统的关系数据库已不能满足大数据存储的需求,大数据存储系统的安全性、可用性和可靠性等问题,已成为影响图书馆大数据决策科学性和读者个性化服务可靠性的关键。而基于Hadoop技术构建的图书馆大数据存储系统,可以有效利用图书馆原有的结构化存储系统设备,具有存储安全性高、结构简单、易于扩展和强经济性的特点,有效地满足了图书馆大数据决策和用户服务对大数据存储系统的高标准要求,且随着存储节点性的提升和制造成本的下降,该系统未来会有更加广阔的使用前景[15]。
在基于Hadoop技术的图书馆大数据存储系统构建中,数据存储节点的可靠性、动态存储副本放置策略的科学性、存储系统资源调度的有效性、存储空间的利用率等,始终是关系图书馆大数据存储科学性和可用性的关键。因此,图书馆应重点加强存储系统架构的效率和可靠性,通过科学均衡存储节点的负载和增强单一节点性能,提升存储系统的综合存储能力。此外,还应提高海量大数据存储算法的科学性和计算效率,才能确保大数据存储系统存储资源调度和分配最优,才能在保证存储安全、可靠性的前提下节约系统能耗[16]。
参考文献
[1]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013,50(1):146-169.
[2]杨俊杰,廖卓凡,冯超超.大数据存储架构和算法研究综述[J].计算机应用,2016,36(9):2465-2471.
[3]涂新莉,刘波,林伟伟.大数据研究综述[J].计算机应用研究,2014,31(6):1612-1617.
[4]張滨,陈吉荣,乐嘉锦.大数据管理技术研究综述[J].计算机应用与软件,2014,31(11):1-5.
[5]张琳,谭军,白明泽.基于MongoDB的蛋白质组学大数据存储系统设计[J].计算机应用,2016,31(1):232-236.
[6]马蕾,杨洪雪,刘建平.大数据环境下用户隐私数据存储方法的研究[J].计算机仿真,2016,33(2):465-468.
[7]金弟,庄锡进,王启迪,等.存储框架模型在地震资料大数据中的应用[J].计算机系统应用,2016,25(2):45-51.
[8]林彬,李姗姗,廖湘科,等.Seadown:一种异构Map Reduce集群中面向SLA的能耗管理方法[J].计算机学报,2013,36(5):977-987.
[9]CHEN Q,YAO J,XIAO Z.LIBRA:lightweight data skew mitigation in Map Reduce[J].IEEE Transactions on Parallel & Distributed Systems,2015,26(9):2520-2533.
[10]宋宝燕,王俊陆,王妍.基于范德蒙码的HDFS优化存储策略研究[J].计算机学报,2015,38(9):1825-1837.
[11]TANG S,LEE B S,HE B.Dynamic job ordering and slot configurations for Map Reduce workloads[J].IEEE Transactions on Services Computing,2016,9(1):4-17.
[12]魏文娟,王黎明.异构Hadoop集群下的比例数据分配策略[J].计算机应用与软件,2015,32(6):316-319.
[13]WANG J,QIU M,GUO B,et al.Phase-reconfigurable shuffle optimization for Hadoop Map Reduce[J].IEEE Transactions on Cloud Computing,2015,(99):121-127.
[14]廖彬,于炯,张陶,等.基于分布式文件系统HDFS的节能算法[J].计算机学报,2013,36(5):1047-1064.
[15]蔡平.基于Hadoop的NoSQL数据库安全研究[D].上海:上海交通大学,2013:23-33.
[16]陈臣.一种基于新型存储的数字图书馆分布式大数据存储架构[J].现代情报,2015,35(1):100-103.
(本文责任编辑:郭沫含)