您好, 访客   登录/注册

基于Hadoop的大数据存储及处理

来源:用户上传      作者:

  【摘要】随着目前互联网数据爆炸式的增长,传统的数据存储和处理方式已经不能够适应数据的增长速度,并且当今生成的大量数据多为web存储的数据结构,其数据存储格式不统一、数据结构多样化,给数据的处理带来了极大的困难。Hadoop技术的出现给大数据时代提供了一个可用的云计算平台,其分布式文件系统实现了数据的安全备份与存储。
  【关键词】大数据;Hadoop;分布式系统;数据备份
  随着计算机网络的普及,web技术和Internet在当今世界产生大量的数据,这些海量数据远远超过有记载以来所产生的数据总量。以天文学为例,2000多年以来,整个天文学的数据累积到现在是140兆兆字节的信息,而位于新墨西哥州阿帕奇山顶天文台的2.5米口径望远镜进行的红移巡天项目,在短短几个星期内就收集到多于140兆兆字节的信息量。这些海量数据每年以超过50%的速度增长,多方面的数据显示,我们已经进入了大数据时代。
  由于数据量爆炸式增长,数据处理手段也是复杂多样,再加上数据结构不象传统数据那样统一存储,所以数据分析处理技术就显得尤为重要。如果数据得不到很好的处理,则海量的数据就没有任何意义,要想真正的拥有这些数据,需要解决以下几个问题:
  1、存储系统的改变
  数据量急剧增加,使得原有的存储系统和方法不能适应新产生的大量数据的存储要求。
  2、复杂的数据结构存储
  原有存储方案中,一种类型的数据库只能存储一种结构的数据。大数据的产生使得数据结构已经由原来单一的结构化数据变为结构化、非结构化、半结构化数据并存的局面。这种多数据结构的数据在目前只能存放单一数据结构的数据库中已经没有办法存储了。
  3、数据处理难度增大
  和处理单一的数据类型不同,将多种数据结构的数据整合、分析、挖掘并从中得出有价位的信息的难度大大增加。
  对伴随大数据产生的新问题,可以逐一的解决。由于数据量极大,原来由单一媒体存储的数据,可以通过技术构建分布式存储系统,将大量数据分别存储在不同的存储系统里,不仅可以实现海量数据的存取,而且可以方便实现分布系统扩展。对于数据结构不同的问题,可以通过设置多种存储引擎,为每种数据结构提供合适的存储方案,来代替以前的结构化为主体的存储方式。多种类型的数据结构给数据分析带来极大的困难,而数据分析是数据存在的主要意义。可以通过对多种结构的数据进行集成,实现对在同一架构下对多种数据结构的分析。
  Hadoop技术是解决上述问题的最好的实现框架。Hadoop是由Apache基金会开发的一种分布式平台,并且是开源的,是目前应用最为广泛的云计算软件平台。当前在行业中存在多种云计算的平台,如主要有亚马逊的EC2,谷歌的App Engine,IBM的蓝云,微软的Azure等等.Hadoop和其它的云计算平台相比主要有以下几个特点:
  1、高性能
  在数据测试中,Hadoop可以对PB数量级的大数据进行同时处理操作,并将结果提供给其它应用。研究人员做过大量测试,以2011个节点的Hadoop集群来进行基准测试,100GB的数据仅仅130秒中就完成了,这种数据处理能力是其它平台所不能完成的。
  2、高扩展性
  由于Hadoop技术主要是针对大数据操作的云计算平台,在设计的时候充分考虑到平台的可扩展性。得用Hadoop技术可以将数据轻松上万台服务节点来实现数据的存储和分析,即实现分布式的存储和分布式的数据处理。这对传统的关系型数据库处理系统及非结构化数据处理技术来讲是不可想象的,这种可扩展性有利于数据量更大时的集群拓展工作。
  3、成本效益高
  传统的存储方案在存储大量重要数据的时候,往往要进行数据备份,这就对存储系统提出很高要求,而且成本大大提高。而Hadoop可以利用其高扩展性的特性,将数据存储到其扩展空间上来完成数据的存储,同时,Hadoop还可以通过保存副本的技术来保证数据的完整性和容错性。同时,由于Hadoop本身对硬件要求不高,所以它可以架构在众多低廉的设备中,以较低的成本来完成较高的收益,使得技术成本大大降低。
  4、广泛应用
  由于Hadoop计算平台的众多优点,加上其技术难度不高,所以它现在成为了互联网上应用最为广泛的云计算平台。目前,微软、百度、雅虎、IBM、甲骨文、淘宝等国内外大公司都积极进行Hadoop的开发和使用,众多公司也都利用此项技术为用户提供了更为全面的服务。
  5、开源性
  和其它的开源性技术软件一样,Hadoop的出现给云计算平台带来大量业务和服务质量的大幅度提高。作为对谷歌的MapReduce和GFS技术的开源实现,其核心技术在海量网络数据处理业务中具有明显的优势。Hadoop的技术架构如表一所示
  Pig:数据分析平台,是一个基于Hadoop的针对大数据的分析平台,它提供Pig Latin,即非结构化的数据库查询语言。
  Chuwa:数据分析和收集系统,针对分布式存储的大数据,它可以快速进行数据分析和指定数据收集。
  Hives:数据仓库,管理分布式存储系统中的数据,它提供基于关系型数据库的查询语言,用来小范围内的数据查询。
  Hbase:分布式列存储数据库,使用分布式文件系统为底层存储。
  MapReudce:数据处理和执行环境,分布式数据处理模式设置,用于大规模的分布式存储机器群。
  HDFS:分布式文件系统,将数据存储在不同地点或设备。
  ZooKepper:分布式应用程序协调服务,提供配置维护,分布式同步等功能。
  Core:一系列分布式文件系统和通用I/O的组件和接口(序列化、Java RPC和持久化数据结构)。   Avro:一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。
  从Hadoop的技术框架上可以看出,它要解决的主要问题就是分布式的存储和计算,在Hadoop分布式的文件体系中,客户可以远程创建文件夹并且在文件夹里保存和修改文件。允许用户创建、删除、复制、转移、重命文件等。目录结点主要负责存储和管理整个文件系统的命名空间,对文件的安全性,分布式文件系统主要依靠存储副本策略来实现文件的备份。在应用程序中,用户可以指定某一个文件在分布式系统中备份的数目(默认情况下是备份三份),程序将文件备份到3个数据结点上,其中至少有一个位于不同结点架的数据结点上。用户指定的备份数目,称为冗余因子,其信息保存在目录结点里。
  Hadoop下的分布式文件系统,对文件的存储做了精心设计,一个大的数据由程序分成若干块,为了方便管理和操作,要求每一个数据块的大小都固定(除了最后一块外)。另外为了安全性,每个数据块程序都会按要求进行冗余存储。在每个目录结点上,会定期收到每个数据结点发来的存在信号和数据块列表,数据块列表包括了此数据点上所有的数据块的编号。如果目录结点长时间没有收到数据结点的存在信号,则认为此数据结点失效。
  随着大数据时代的到来,今后数据处理上会越来越多的应用到云计算的平台,单一的、结构化的数据处理已经远远不能哆适应当今数据爆炸式的增长。做为当今最为流行的大数据处理技术,Hadoop还是有其不完善的地方,但是在此技术下的分布式文件系统及其数据的分析、处理、整合程序已经显示出其强大的功能和适应性。在数据安全、数据提取上Hadoop技术也做了充分的考虑,使得数据存储无后顾之忧。
  参考文献
  [1]Amazon E C,Amazon Elastic Compute Cloud, Retrieved Feb, 102009.
  [2]许志远,李婷,王跃,移动互联网白皮书;北京:工业和信息化部电信研宄院,2013
  [3]Zahariev A, Google App Engine, Helsinki University of Technology, 2009.
  [4]Sims K, IBM Introduces Ready-To-Use Cloud Computing Collaboration Services Get Clients Started with Cloud Computing, 2011.
  [5]Shmder D,Microsoft Azure:Security in the Cloud,WindowSecurity. com (downloaded),2009.
  [6]Cooper B F,Baldeschwieler E,Fonseca Ret al.,Building a Cloud for Yahoo!, IEEE Data Eng.Bull., 32 (1)2009 36-43.
  [7]余利华.分布式数据存储和处理的若干技术研究:(博士学位论文)杭州:浙江大学,2008.
  [8]Zikopoulos P,Parasuraman K,Deutsch Tet al” Harness the Power of Big Data the IBM Big Data Platform, McGrawHill Professional,2012,.
  [9]Sarkar D,Pro Microsoft HDInsight: Hadoop On Windows, Apress,2014
  [10]Tom White著.周敏奇,王晓玲译.Hadoop权威指南[M].北京:清华大学出版,2011.
转载注明来源:https://www.xzbu.com/6/view-11654666.htm