基于Hadoop的大数据存储策略研究文献综述
2020-04-14 17:21:36
随着网络与信息技术的深入发展与广泛普及应用,各个行业都在以不可思议的速度迅猛地产生海量数据。通过微信、QQ 等聊天产生交流数据,利用微博、贴吧等发帖与留言产生点评数据,网络购物、快递包裹等产生交易数据,视频内容产生观影数据,手机、座机等通话产生通话数据,移动终端与互联网的普及更是加快了数据的产生[1]。由业界分析调研机构 IDC 发布的研究报告指出:在今后的10年里, 全世界的信息量将从2009年的0.8ZB增长到2020 年的35ZB,10年将增长44 倍,年均增长40% [2]。由于各行业应用所产生的数据呈 爆炸性增长,我们步入了大数据(Big Data)时代。
海量数据的产生已不再适合用传统的方法对数据进行存储, 与此同时数据处理手段也是复杂多样,再加上数据结构不像传统数据那样统一,那么我们应该怎么合理地存储海量数据呢?针对这个问题,分布式存储系统应运而生。由于数据量极大,原来由单一媒体存储的数据,可以通过技术构建分布式存储系统,将大量数据分别存储在不同的存储节点里,不仅可以实现海量数据的存取,而且易于实现系统扩展。对于数据结构不同的问题,可以通过设置多种存储引擎,为每种数据结构提供合适的存储方案,来代替以前的结构化为主体的存储方式。
分布式存储系统,是将数据分散存储在多台独立的存储设备上。传统的存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的系统结构,利用分布在不同地理位置的多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
Hadoop采用Java语言开发,是对Google的MapReduce、GFS(Google File System)和Bigtable等核心技术的开源实现,由Apache软件基金会支持,是以Hadoop分布式文件系统(Hadoop Distributed Storage System,HDFS)和MapReduce(Google MapReduce)为核心,以及一些支持Hadoop的其他子项目的通用工具组成的分布式计算机系统。主要用于海量数据(大于1TB)高效的存储、管理和分析[3]。在Hadoop生态系统中,HDFS是非常关键的一环,它为管理大数据资源池和支撑相关大数据分析应用提供了一个具有高可靠性的数据存储工具。
HDFS支持在计算节点之间快速传输数据。在开始阶段,它与MapReduce紧密耦合——MapReduce是一个用于大规模数据集的并行运算的编程框架。当HDFS接收数据时,会将信息分解为单独的块,并将它们分布到集群中的不同节点,从而支持高效的并行处理。此外,HDFS专门设计有高容错的特性。HDFS可以多次复制每个数据片段,并将副本分发给各个节点,将至少一个副本放在其他服务器机架上。因此,在集群中的其他地方也可以找到崩溃节点上的数据。这确保了在恢复数据时可以继续进行处理。HDFS使用主/从架构。在其最初版本中,每个Hadoop集群由一个NameNode(用于管理文件系统运行)和支持DataNode(用于管理单个计算节点上的数据存储)组成。这些HDFS元素结合起来,可支持具有大数据集的应用程序。
由于存储方式的变革以及Hadoop的使用深入人心,在本研究中利用Hadoop的分布式文件系统HDFS来进行分布式存储系统的搭建与性能测试,从而掌握Hadoop的基本使用、更深入了解目前大数据的存储策略以及对所设计的存储方案进行测试。
1.2含国内外的研究现状分析
分布式数据存储目前已经在业界获得了卓越的成就。在国外,许多公司针对自己的业务需求,皆开发了符合自身特色的分布式存储文件系统:Sun Microsystem公司开发了基于C/S模式的网络文件系统 NFS(Network File System)[4];IBM公司开发了基于共享磁盘技术的并行文件系统GPFS(GeneralPallel File System)[5];IBM公司还与美国的卡内基梅隆大学(Carnegie-Mello University)联合研制了基于 C/S模式的分布式文件系统 AFS [6];HP、Intel和Cluster File System 等公司与美国能源 部一起研制了Lustre [7],它是基于Linux集群的分布式文件系统;Google公司也开发了能存储海量数据的分布式文件系统 GFS [8];Panasas 公司研制了基于对象存储的分布式文件系统PanFS [9]。国外的许多高校与开源社区也对此做了相关的研究,研发了能运行在 Linux 系统上的分布式文件系统;卡内基梅隆大学在AFS基础上研制了Coda [10];加州大学SantaCruz分校的Sage Weil研发了可扩展性的分布式文件系统 Ceph [11];Clifford Neuman 在VSM基础上研发了 Prospero [12];Hadoop [13]社区开发了高并发访问、良好容错性的分布式文件系统 HDFS [14]。另外,国内的一部分公司也根据自身的应用需求,设计并研发了一些分布式文件系统,例如国内最大的 电子商务平台阿里巴巴集团也开发了支持大规模的非结构化数据的分布式文件系统 TFS [15]。国内的很多大学以及研究所也对分布式系统的研发取得了理想的成果, 例如中国科学院的计算机研究所设计并研发了蓝鲸集群文件系统 BWFS [16]。
近几年,Hadoop 技术在分布式系统领域也得到了深入地研究。许文龙利用 HBase 分布式数据库设计了交通数据的存储模型,并利用 Hadoop 技术对海量车联 网数据进行分布式存储与分析,并应用到车联网中[17]。胡辉为了实现对动车组的故障分析,利用 Hadoop 技术对现有的大规模动车组运行状态数据进行分布式存储与分析,设计并实现了基于 Hadoop 的动车组故障数据关联规则挖掘系统,为动车组工作人员提供了良好的故障诊断分析[18]。郭凯振对 Hadoop 框架进行了深入的理论分析,设计并实现了基于 Hadoop 的分布式计算系统[19]。武桂云针对现有的数据挖掘任务,设计并实现了基于 Hadoop平台的分布式数据挖掘系统[20]。王铮针对现有的金融保险业务需求,设计并实现了基于 Hadoop 的分布式系统[21]。
{title}
2. 研究的基本内容与方案
{title}本课题拟基于Hadoop分布式文件系统为大数据设计高效的存储方案,并对所设计方案的性能,例如安全性、可靠性、存储开销、读写开销等,进行多维度的软件仿真测试和理论分析。