大数据技术综述_第1页
大数据技术综述_第2页
大数据技术综述_第3页
大数据技术综述_第4页
大数据技术综述_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

赵勇等:大数据技术综述PAGE17PAGE18

大数据技术综述Abstract: Weareenteringintoa“bigdata”era.Duetothebottlenecks,suchaspoorscalability,installationandmaintenancedifficulties,faulttoleranceandlowperformance,intraditionalinformationtechniqueframework,weneedtoleveragethecloudcomputingtechniquesandsolutionstodealwithbigdataproblems.Cloudcomputingandbigdataarecomplementarytoeachotherandhaveinherentconnectionofdialecticalunity.Thebreakthroughofbigdatatechniqueswillnotonlyresolvethecurrentsituation,butalsopromotethewideapplicationofcloudcomputingandtheinternetofthingstechniques.Wefocusondiscussingthedevelopmentandthepivotaltechniquesofbigdata.Andprovideacomprehensivedescriptionofbigdatafromseveralperspectives,includingthedevelopmentofbigdata,thecurrentdata-burstsituation,therelationshipbetweenbigdataandcloudcomputingandthebigdatatechniques.Finally,weintroducetherelatedtechniqueresearchesandourcurrentwork.Keywords: bigdatatechnique;cloudcomputing;dataacquisition;datastorage;datacomputation;presentationandinteraction摘要: 我们正在进入一个“大数据”时代,传统的信息技术架构,存在着扩展性差、容错性差、性能低、安装部署及维护困难等诸多瓶颈,需要以现代云计算手段和技术来解决大数据问题.云计算与大数据是相辅相成、辨证统一的关系,大数据技术的突破不仅能解决现实困难,同时也会促使云计算、物联网技术真正落地并深入推广和应用.针对大数据的发展历程以及关键性的大数据技术进行探讨,从大数据的发展历程、当前面临的大数据问题、大数据与云计算的关系以及大数据技术等方面进行综合描述.归纳总结相关的技术研究和我们的研究成果.关键词: 大数据技术;云计算;数据采集;数据存储;数据计算;展现与交互中图法分类号: TP301文献标识码:A大数据的发展背景及定义当今,信息技术为人类步入智能社会开启了大门,带动了互联网、物联网、电子商务、现代物流、网络金融等现代服务业发展,催生了车联网、智能电网、新能源、智能交通、智能城市、高端装备制造等新兴产业发展.现代信息技术正成为各行各业运营和发展的引擎.但这个引擎正面临着大数据这个巨大的考验[57].各种业务数据正以几何级数的形式爆发[1],其格式、收集、储存、检索、分析、应用等诸多问题,不再能以传统的信息处理技术加以解决,对人类实现数字社会、网络社会和智能社会带来了极大的障碍.纽约证券交易所每天产生1TB的交易数据;Twitter每天就会生成超过7TB的数据;Facebook每天会产生超过10TB的数据;位于欧洲粒子物理实验室的大型强子对撞机每年产生约15PB的数据.根据著名咨询公司IDC的调查与统计,07年全球信息量约为165EB,即使在全球遭遇金融危机的2009年,全球信息量仍达到800EB,比上一年度增长62%;未来每隔18个月,整个世界的数据总量就会翻倍;预计2020年这一数字将达到35ZB,约为2007年的230倍,而人类历史5000年的文字记载只有5EB数据.上述统计与调查预示着TB、PB、EB的时代已经成为过去,全球将正式进入数据存储的“泽它(Zetta)时代”.从2009年开始,“大数据”成为互联网信息技术行业的流行词汇,大数据起初成熟应用多在互联网行业,互联网上的数据每年增长50%,每两年翻一番,全球互联网企业都意识到“大数据”时代的来临,数据对于企业有着重要意义.2011年5月,麦肯锡全球研究院发布题为《大数据:创新、竞争和生产力的下一个新领域》[2]的报告.报告发布后,“大数据”迅速成为计算机行业的热门概念.2012年4月美国奥巴马政府推出”大数据研究和发展倡议”[3],并划拨2亿美元的专项资金之后,在全球掀起了一股大数据的热潮.根据Wikibon2011年发布的大数据报告[4],大数据市场正处在井喷式增长的前夕,未来五年全球大数据市场价值将高达500亿美元.2012年初,大数据相关软件、硬件和服务的收入总和只有约50亿美元.但随着企业逐渐认识到大数据和相关分析将形成新的差异化竞争优势,提升运营效率,大数据相关技术和服务将获得长足发展,大数据将逐渐落地,并在未来五年保持58%的惊人复合增长速度.投资银行JMPSecurities分析师GregMcDowell则表示大数据工具市场预计将在10年内由去年的90亿美元增长至860亿美元.到2020年,企业在大数据工具方面的投资将占整体企业IT开支的11%.目前,业界对大数据还没有一个统一的定义,常见的大数据定义如下:“大数据是指无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合.”——麦肯锡.“大数据是指无法在一定时间内用常规软件工具对其内容迚行抓取、管理和处理的数据集.”——维基百科“大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产.”Gartner大数据具备Volume、Velocity、Variety和Value四个特征[47](简称为“4V”,即数据体量巨大、处理速度快、数据类型繁多和价值密度低),下面对每个特征分别作简要描述.Volume:表示大数据的数据量巨大.数据集合的规模不断扩大,已从GB到TB再到PB级,甚至开始以EB和ZB来计数.比如一个中型城市的视频监控头每天就能产生几十TB的数据.Variety:表示大数据的类型复杂.以往我们产生或者处理的数据类型较为单一,大部分是结构化数据.而如今,社交网络、物联网、移动计算、在线广告等新的渠道和技术不断涌现,产生大量半结构化或者非结构化数据,如XML、邮件、博客、即时消息等,导致了新数据类型的剧增.企业需要整合并分析来自复杂的传统和非传统信息源的数据,包括企业内部和外部的数据.随着传感器、智能设备和社会协同技术的爆炸性增长,数据的类型无以计数,包括:文本、微博、传感器数据、音频、视频、点击流、日志文件等.Velocity:数据产生、处理和分析的速度持续在加快,数据流量大.加速的原因是数据创建的实时性天性,以及需要将流数据结合到业务流程和决策过程中的要求.数据处理速度快,处理能力从批处理转向流处理.业界对大数据的处理能力有一个称谓——“1秒定律”,也就充分说明了大数据的处理能力,体现出它与传统的数据挖掘技术有着本质的区别;Value:大数据由于体量不断加大,单位数据的价值密度在不断降低,然而数据的整体价值在提高.有人甚至将大数据等同于黄金和石油,表示大数据当中蕴含了无限的商业价值.根据IDC调研报告中预测,大数据技术与服务市场将从2010年的32亿美元攀升至2015年的169亿美元,实现年增长率达40%,并且将会是整个IT与通信产业增长率的7倍.通过对大数据进行处理,找出其中潜在的商业价值,将会产生巨大的商业利润.大数据处理技术在具体的应用方面,可以为国家支柱企业的数据分析和处理提供技术和平台支持,为企业进行数据分析、处理、挖掘,提取出重要的信息和知识,再转化为有用的模型,应用到研究、生产、运营和销售过程中.同时,国家大力倡导“智慧城市”建设,在城市化与信息化融合等背景下,围绕改善民生、增强企业竞争力、促进城市可持续发展等关注点,综合利用物联网、云计算等信息技术手段,结合城市现有信息化基础,融合先进的城市运营服务理念,建立广泛覆盖和深度互联的城市信息网络,对城市的资源、环境、基础设施、产业等多方面要素进行全面感知,并整合构建协同共享的城市信息平台,对信息进行智能处理利用,从而为城市运行和资源配置提供智能响应控制,为政府社会管理和公共服务提供智能决策依据及手段,为企业和个人提供智能信息资源及开放式信息应用平台的综合性区域信息化发展过程.数据无疑是新型信息技术服务和科学研究的基石,而大数据处理技术理所当然地成为当今信息技术发展的核心热点,大数据处理技术的蓬勃发展也预示着又一次信息技术革命的到来.另一方面,随着国家经济结构调整、产业升级的不断深化,信息处理技术的作用将日益凸显,而大数据处理技术无疑将成为在国民经济支柱产业信息化建设中实现核心技术的弯道追赶、跟随发展、应用突破、减少绑架的最佳突破点[16].大数据问题大数据因为它所蕴含的潜在价值,正在成为企业的隐形“金矿”.随着生产、运营、管理、监控、销售、客服等各个环节的数据不断累积和增长,以及用户数的不断上升,通过从庞大的数据中分析出相关模式以及趋势,可以实现高效管理、精准营销,成为企业打开这一“金矿”的钥匙.然而传统的IT基础架构和数据管理分析方法已经不能适应大数据的快速增长.大数据的爆发是我们在信息化和社会发展中遇到的棘手问题,需要我们采用新的数据管理模式,研究和发展新一代的信息技术才能解决.我们把大数据问题归纳为表1中所列7类:Table1Problemsofbigdata表1大数据问题大数据问题分类大数据问题描述速度方面的问题导入导出问题统计分析问题检索查询问题实时响应问题种类及架构问题多源问题异构问题原系统的底层架构问题体量及灵活性问题线性扩展问题动态调度问题成本问题大机与小型服务器的成本对比原有系统改造的成本把控价值挖掘问题数据分析与挖掘问题数据挖掘后的实际增效问题存储及安全问题结构与非结构数据安全隐私安全互联互通与数据共享问题数据标准与接口共享协议访问权限速度方面的问题传统的关系型数据库管理系统(RDBMS)一般都是集中式的存储和处理,没有采用分布式架构,在很多大型企业中的配置往往都是基于IOE(IBM服务器,Oracle数据库,EMC存储).在这种典型配置中单台服务器的配置通常都很高,可以多达几十个CPU核,内存也能达到上百GB;数据库的存储放在高速大容量的磁阵上,存储空间可达TB级.这种配置对于传统的信息管理系统(MIS)需求来说是可以满足需求的,然而面对不断增长的数据量和动态数据使用场景,这种集中式的处理方式就日益成为瓶颈,尤其是在速度响应方面捉襟见肘.在面对大数据量的导入导出、统计分析、检索查询方面,由于依赖于集中式的数据存储和索引,性能随着数据量的增长而急速下降,对于需要实时响应的统计及查询场景更是无能为力.比如在物联网中,传感器的数据可以多达几十亿条,对这些数据需要进行实时入库、查询及分析,传统的RDBMS就不再适合应用需求.种类及架构问题RDMBS对于结构化的、固定模式的数据,已经形成了相当成熟的存储、查询、统计处理方式.随着物联网、互联网以及移动通信网络的飞速发展,数据的格式及种类在不断变化和发展.在智能交通领域,所涉及的数据可能包含文本、日志、图片、视频、矢量地图等来自不同数据采集监控源的,不同种类的数据.这些数据的格式通常都不是固定的,如果采用结构化的存储模式将很难应对不断变化的需求.因此对于这些种类各异的多源异构数据,需要采用不同的数据和存储处理模式,结合结构化和非结构化数据存储.在整体的数据管理模式和架构上,也需要采用新型的分布式文件系统及分布式NoSQL数据库架构,才能适应大数据量及变化的结构.体量及灵活性问题如前所述,大数据由于总体的体量巨大,采用集中式的存储,在速度、响应方面都存在问题.当数据量越来越大,并发读写量也越来越大时,集中式的文件系统或单数据库操作将成为致命的性能瓶颈,毕竟单台机器的承受压力是有限的.我们可以采用线性扩展的架构和方式,把数据的压力分散到很多台机器上,直到可以承受,这样就可以根据数据量和并发量来动态增加和减少文件或数据库服务器,实现线性扩展.在数据的存储方面,需要采用分布式可扩展的架构,比如大家所熟知的Hadoop文件系统[25],和HBase数据库[27].同时在数据的处理方面,也需要采用分布式的架构,把数据处理任务,分配到很多计算节点上,同时还需考虑数据存放节点和计算节点之间的位置相关性.在计算领域中,资源分配,任务的分配实际上是一个任务调度问题.其主要任务是根据当前集群中各个节点上面的资源(包括CPU、内存、存储空间和网络资源等)的占用情况,和各个用户作业服务质量要求,在资源和作业或者任务之间做出最优的匹配.由于用户对作业服务质量的要求是多样化的,同时资源的状态也在不断变化,因此,为分布式数据处理找到合适的资源是一个动态调度问题.成本问题集中式的数据存储和处理,在硬件软件选型时,基本采用的方式都是配置相当高的大型机或小型机服务器,以及访问速度快、保障性高的磁盘阵列,来保障数据处理性能.这些硬件设备都非常昂贵,动辄高达数百万元,同时软件也经常是国外大厂商如Oracle,IBM,SAP,微软等的产品,对于服务器及数据库的维护也需要专业技术人员,投入及运维成本很高.在面对海量数据处理的挑战时,这些厂商也推出了形似庞然大物的“一体机”解决方案,如Oracle的Exadata,SAP的Hana等,通过把多服务器、大规模内存、闪存、高速网络等硬件进行堆叠,来缓解数据压力,然而在硬件成本上,更是大幅跳高,一般的企业很难承受.新型的分布式存储架构、分布式数据库如HDFS,HBase,Cassandra[28],MongoDB[29]等由于大多采用去中心化的、海量并行处理MPP架构,在数据处理上不存在集中处理和汇总的瓶颈,同时具备线性扩展能力,能有效地应对大数据的存储和处理问题.在软件架构上,也都实现了一些自管理、自恢复的机制,以面对大规模节点中容易出现的偶发故障,保障系统整体的健壮性,因此对每个节点的硬件配置,要求并不高,甚至可以使用普通的PC作为服务器,因此在服务器成本上可以大大节省,在软件方面开源软件也占据非常大的价格优势.当然,在谈及成本问题时,我们不能简单地进行硬件软件的成本对比.要把原有的系统及应用迁移到新的分布式架构上,从底层平台到上层应用都需要做很大的调整.尤其是在数据库模式以及应用编程接口方面,新型的NoSQL数据库与原来的RDBMS存在较大的差别,企业需要评估迁移及开发成本、周期及风险.除此之外,还需考虑服务、培训、运维方面的成本.但在总体趋势上,随着这些新型数据架构及产品的逐渐成熟与完善,以及一些商业运营公司基于开源基础为企业提供专业的数据库开发及咨询服务,新型的分布式、可扩展数据库模式必将在大数据浪潮中胜出,从成本到性能方面完胜传统的集中式大机模式.价值挖掘问题大数据由于体量巨大,同时又在不断增长,因此单位数据的价值密度在不断降低.但同时大数据的整体价值在不断提高,大数据被类比为石油和黄金,因此从中可以发掘巨大的商业价值[54].要从海量数据中找到潜藏的模式,需要进行深度的数据挖掘和分析.大数据挖掘与传统的数据挖掘模式也存在较大的区别:传统的数据挖掘一般数据量较小,算法相对复杂,收敛速度慢.然而大数据的数据量巨大,在对数据的存储、清洗、ETL(抽取、转换、加载)方面都需要能够应对大数据量的需求和挑战,在很大程度上需要采用分布式并行处理的方式,比如Google,微软的搜索引擎,在对用户的搜索日志进行归档存储时,就需要多达几百台甚至上千台服务器同步工作,才能应付全球上亿用户的搜索行为.同时,在对数据进行挖掘时,也需要改造传统数据挖掘算法以及底层处理架构,同样采用并行处理的方式才能对海量数据进行快速计算分析.Apache的Mahout[30]项目就提供了一系列数据挖掘算法的并行实现.在很多应用场景中,甚至需要挖掘的结果能够实时反馈回来,这对系统提出了很大的挑战,因为数据挖掘算法通常需要较长的时间,尤其是在大数据量的情况下,在这种情形下,可能需要结合大批量的离线处理和实时计算才可能满足需求.数据挖掘的实际增效也是我们在进行大数据价值挖掘之前需要仔细评估的问题.并不见得所有的数据挖掘计划都能得到理想的结果.首先需要保障数据本身的真实性和全面性,如果所采集的信息本身噪音较大,或者一些关键性的数据没有被包含进来,那么所挖掘出来的价值规律也就大打折扣.其次也要考虑价值挖掘的成本和收益,如果对挖掘项目投入的人力物力、硬件软件平台耗资巨大,项目周期也较长,而挖掘出来的信息对于企业生产决策、成本效益等方面的贡献不大,那么片面地相信和依赖数据挖掘的威力,也是不切实际和得不偿失的.存储及安全问题在大数据的存储及安全保障方面,大数据由于存在格式多变、体量巨大的特点,也带来了很多挑战.针对结构化数据,关系型数据库管理系统RDBMS经过几十年的发展,已经形成了一套完善的存储、访问、安全与备份控制体系.由于大数据的巨大体量,也对传统RDBMS造成了冲击,如前所述,集中式的数据存储和处理也在转向分布式并行处理.大数据更多的时候是非结构化数据,因此也衍生了许多分布式文件存储系统,分布式NoSQL数据库等来应对这类数据.然而这些新兴系统,在用户管理、数据访问权限、备份机制、安全控制等各方面还需进一步完善.安全问题,如果简而言之,一是要保障数据不丢失,对海量的结构、非结构化数据,需要有合理的备份冗余机制,在任何情况下数据不能丢.二是要保障数据不被非法访问和窃取,只有对数据有访问权限的用户,才能看到数据,拿到数据.由于大量的非结构化数据可能需要不同的存储和访问机制,因此要形成对多源、多类型数据的统一安全访问控制机制,还是亟待解决的问题.大数据由于将更多更敏感的数据汇集在一起,对潜在攻击者的吸引力更大;若攻击者成功实施一次攻击,将能得到更多的信息,“性价比”更高,这些都使得大数据更易成为被攻击的目标.LinkedIn在2012年被曝650万用户账户密码泄露;雅虎遭到网络攻击,致使45万用户ID泄露.2011年12月,CSDN的安全系统遭到黑客攻击,600万用户的登录名、密码及邮箱遭到泄漏.与大数据紧密相关的还有隐私问题.由于物联网技术和互联网技术的飞速发展,与我们工作生活相关各类信息都被采集和存储下来,我们随时暴露在“第三只眼”下面.不管我们是在上网、打电话、发微博、微信,还是在购物、旅游,我们的行为都在随时被监控分析.对用户行为的深入分析和建模,可以更好地服务用户,实施精准营销,然而如果信息泄露或被滥用,则会直接侵犯到用户的隐私,对用户形成恶劣的影响,甚至带来生命财产的损失.2006年,美国DVD租赁商Netflix公司举办了一个算法竞赛.该公司公布了大约来自50万用户的一亿条租赁记录,并且公开悬赏100万美金,举办一个软件设计大赛来提高他们的电影推荐系统的准确度,胜利的条件是把准确度提高10%.尽管该公司对数据进行了精心的匿名化处理,还是被一个用户认出来了,一个化名“无名氏”的未出柜的同性恋母亲起诉了Netflix公司,她来自保守的美国中西部.在美国的微博网站T上面,很多用户习惯随时发布他们的位置和动态信息,结果有几家网站,如“PleaseRobM”-请来抢劫我,“WeKnowYourH”-我知道你的家,能够根据用户所发的信息,推测出用户不在家的时间,找到用户的准确家庭住址,甚至把房子的照片都能找出来.他们的做法旨在提醒大家我们随时暴露在公众视线下,如果不培养安全和隐私意识,将会给自身带来灾难.目前世界的很多国家,包括中国,都在完善与数据使用及隐私相关的法律,来保护隐私信息不被滥用.互联互通与数据共享问题在我国的企业信息化建设过程中,普遍存在条块分割和信息孤岛的现象.不同行业之间的系统与数据几乎没有交集,同一行业,比如交通、社保系统内部等,也是按行政领域进行划分建设,跨区域的信息交互和协同非常困难.严重的甚至在同一单位内,比如一些医院的信息系统建设,病历管理、病床信息、药品管理等子系统都是分立建设的,没有实现信息共享和互通.“智慧城市”是我国十二五信息化建设的重点,而智慧城市的根本,是要实现信息的互联互通和数据共享,基于数据融合实现智能化的电子政务、社会化管理和民生改善.因此在城市数字化的基础上,还需实现互联化,打通各行各业的数据接口,实现互联互通,在此之上才能实现智慧化.比如在城市应急管理方面,就需要交通、人口、公安、消防、医疗卫生等各个方面的数据和协助.当前美国联邦政府建立的数据共享平台,我国北京市政府数据资源网()等都是朝着数据开放、数据共享的有力的尝试.为实现跨行业的数据整合,需要制定统一的数据标准、交换接口以及共享协议,这样不同行业、不同部门、不同格式的数据才能基于一个统一的基础进行访问、交换和共享.对于数据访问,还需制定细致的访问权限,规定什么样的用户在什么样的场景下,可以访问什么类型的数据.在大数据及云计算时代,不同行业、企业的数据可能存放在统一的平台和数据中心之上,需要对一些敏感信息进行保护,比如涉及到企业商业机密及交易信息方面的数据,虽然是依托平台来进行处理,但是除了企业自身的授权人员之外,要保证平台管理员以及其他企业都不能访问此类数据.大数据与云计算的辩证关系云计算技术自2007年以来取得了蓬勃的发展.云计算的核心模式是大规模分布式计算,将计算、存储、网络等资源以服务的模式提供给多用户,按需使用[5].云计算为企业和用户提供高可扩展性、高可用性和高可靠性,提高资源使用效率,降低企业信息化建设、投入和维护成本.随着美国亚马逊、Google、以及微软公司提供的公共云服务的不断成熟与完善,越来越多的企业正在朝着云计算平台上迁移.由于国家的战略规划需要以及积极引导,云计算及技术在我国近几年来取得了长足的发展.我国设立了北京、上海、深圳、杭州、无锡作为第一批云计算示范城市,北京的“祥云”计划,上海的“云海”计划,深圳的“云计算国际联合实验室”,无锡的“元云计算项目”,以及杭州的“西湖云计算公共服务平台”也先后启动和上线,其他城市如天津、广州、武汉、西安、重庆、成都等也都推出了相应的云计算发展计划或成立了云计算联盟,积极开展云计算的研究开发和产业试点.然而中国云计算的普及在很大程度上仍然局限在基础设施的建设方面,缺乏规模性的行业应用,没有真正实现云计算的落地.究其原因,物联网及云计算技术的全面普及是我们的美好愿景,能够实现信息采集、信息处理,以及信息应用的规模化、泛在化、协同化.然而其应用的前提是大部分行业、企业在信息化建设方面已经具备良好的基础和经验,有着迫切的需求去改造现有系统架构,提高现有系统的效率.而现实情况是我们的大部分中小企业在信息化建设方面还才刚刚起步,只有一些大型企业和国家部委在信息化建设方面具备基础.大数据的爆发则是社会和行业信息化发展中遇到的棘手问题.由于数据流量和体量增长迅速,数据格式存在多源异构的特点,而我们对数据处理又要求能够准确实时,能够帮助我们发掘出大体量数据中潜在的价值.传统的信息技术架构,已无法处理大数据问题,存在着扩展性差、容错性差、性能低、安装部署及维护困难等诸多瓶颈.由于物联网、互联网、移动通信网络技术在近些年来的迅猛发展,造成数据产生和传输的频度和速度都大大加快,催生了大数据问题,而数据的二次开发,深度循环利用则让大数据问题日益突出.我们认为云计算与大数据是相辅相成、辨证统一的关系.云计算、物联网技术的广泛应用是我们的愿景,而大数据的爆发则是发展中遇到的棘手问题;前者是人类文明追求的梦想,后者是社会发展亟待解决的瓶颈;云计算是技术发展趋势,大数据是现代信息社会飞速发展的必然现象.解决大数据问题,又需要以现代云计算的手段和技术.大数据技术的突破不仅能解决现实困难,同时也会促使云计算、物联网技术真正落地并深入推广和应用.从现代IT技术的发展中,我们能总结出几个规律:(1)大型机与个人PC之争,以个人PC完胜为终局.苹果iOS和Android之争,开放的Android平台在2-3年内即抢占了1/3的市场份额.Nokia的塞班操作系统因为不开放,现在处于淘汰边缘.这些都体现了现代IT技术需要本着开放、众包的观念,才能取得长足发展.(2)现有的常规技术同云计算技术的碰撞与之相类似,云计算技术的优势在于利用众包理论和开源体系,建设基于开放平台和开源新技术的分布式架构之上,能够解决现有集中式的大机处理方式难以解决或不能解决的问题.像淘宝、腾讯等大型互联网公司也曾经依赖于Sun,Oracle,EMC这样的大公司专有解决方案,后来都因为成本太贵而采用开源技术,自身的产品最终也贡献给开源界,也反映了信息技术发展的趋势.(3)传统行业巨头已经向开源体系倾斜,这是利于追赶的历史机遇.传统的行业巨头、大型央企如国家电网、电信、银行、民航等因为历史原因过度依赖外企成熟的专有方案,造成创新性不足,被外企产品绑架的格局.从破解问题的方案路径上分析,解决大数据问题,必须逐渐放弃传统信息技术架构,利用以“云”技术为代表的新一代信息技术来解决大数据问题.尽管先进的云计算技术主要还是发源于美国,但是基于开源基础,我们与发达技术的差距并不大,将云计算技术应用于大型行业中的迫切的大数据问题,也是我们实现创新突破、打破垄断、追赶国际先进技术的历史契机.大数据技术大数据带来的不仅是机遇,同时也是挑战.传统的数据处理手段已经无法满足大数据的海量实时需求,需要采用新一代的信息技术来应对大数据的爆发.我们把大数据技术归纳为五大类,如表2中所示.Table2Classificationofbigdatatechniques表2大数据技术分类大数据技术分类大数据技术与工具基础架构支持云计算平台云存储虚拟化技术网络技术资源监控技术数据采集数据总线ETL工具数据存储分布式文件系统关系型数据库NoSQL技术关系型数据库与非关系型数据库融合内存数据库数据计算数据查询、统计与分析数据预测与挖掘图谱处理BI商业智能展现与交互图形与报表可视化工具增强现实技术基础架构支持.主要包括为支撑大数据处理的基础架构级数据中心管理、云计算平台、云存储设备及技术、网络技术、资源监控等技术.大数据处理需要拥有大规模物理资源的云数据中心和具备高效的调度管理功能的云计算平台的支撑.数据采集技术.数据采集技术是数据处理的必备条件,首先需要有数据采集的手段,把信息收集上来,才能应用上层的数据处理技术.数据采集除了各类传感设备等硬件软件设施之外,主要涉及到的是数据的ETL(采集、转换、加载)过程,能对数据进行清洗、过滤、校验、转换等各种预处理,将有效的数据转换成适合的格式和类型.同时,为了支持多源异构的数据采集和存储访问,还需设计企业的数据总线,方便企业各个应用和服务之间数据的交换和共享.数据存储技术.数据经过采集和转换之后,需要存储归档.针对海量的大数据,一般可以采用分布式文件系统和分布式数据库的存储方式,把数据分布到多个存储节点上,同时还需提供备份、安全、访问接口及协议等机制.数据计算.我们把与数据查询、统计、分析、预测、挖掘、图谱处理、BI商业智能等各项相关的技术统称为数据计算技术.数据计算技术涵盖数据处理的方方面面,也是大数据技术的核心.数据展现与交互.数据展现与交互在大数据技术中也至关重要,因为数据最终需要为人们所使用,为生产、运营、规划提供决策支持.选择恰当的、生动直观的展示方式能够帮助我们更好地理解数据及其内涵和关联关系,也能够更有效地解释和运用数据,发挥其价值.在展现方式上,除了传统的报表、图形之外,我们还可以结合现代化的可视化工具及人机交互手段,甚至是基于最新的如Google眼镜等增强现实手段,来实现数据与现实的无缝接口.基础架构支持大数据处理需要拥有大规模物理资源的云数据中心和具备高效的调度管理功能的云计算平台的支撑.云计算管理平台能为大型数据中心及企业提供灵活高效的部署、运行和管理环境,通过虚拟化技术支持异构的底层硬件及操作系统,为应用提供安全、高性能、高可扩展、高可靠和高伸缩性的云资源管理解决方案,降低应用系统开发、部署、运行和维护的成本,提高资源使用效率.作为新兴的计算模式,云计算在学术界和业界获得巨大的发展动力.政府、研究机构和行业领跑者正在积极的尝试应用云计算来解决网络时代日益增长的计算和存储问题.除了亚马逊的AWS、Google的AppEngine和Microsoft的WindowsAzureServices等商业云平台之外,还有一些如OpenNebula[6][7]、Eucalyptus[12]、Nimbus[9]、和OpenStack[8]等开源的云计算平台,每个平台都有其显著的特点和不断发展的社区.亚马逊的AWS可以说是当前最主流的云计算平台,2013年上半年其平台及云计算服务等收入17亿美元,同比增长60%.其系统架构最大的特点就是通过WebService接口开放数据和功能,并通过SOA的架构使系统达到松耦合.AWS提供的WebService栈可分为四层:访问层:提供管理控制台,API和各种命令行等通用服务层:包括身份认证、监控、部署和自动化等PaaS层服务:包括并行处理、内容传输和消息服务等IaaS层服务:包括云计算平台EC2、云存储服务S3/EBS、网络服务VPC/ELB、数据库服务等Eucalyptus是试图克隆AWS的开源云计算平台,实现了类似AmazonEC2的功能,用来通过计算集群或工作站群实现弹性的、使用的云计算.它提供了与EC2和存储系统S3的接口兼容性.使用这些接口的应用可以直接与Eucalyptus进行交互,支持Xen[10]和KVM[11]虚拟技术,还有用于系统管理和用户结算的云管理工具.Eucalyptus包含五个主要组件,分别为云控制器CLC、云存储服务Walrus、集群控制器CC、存储控制器SC和节点控制器NC.Eucalyptus通过Agent的方式来管理计算资源,组件能相互协作共同提供所需的云服务.OpenNebula是2005年欧洲研究学会发起的虚拟基础设备和云端运算计划的虚拟化管理层的开源实现.它是一个用来创建IaaS私有云、公有云和混合云的开源工具,同时还是一个可以实现多种不同云架构并和多种数据中心服务进行交互的模块化系统.OpenNebula集成了存储、网络、虚拟化、监测和安全技术,可以根据分配策略,以虚拟机形式在分布式基础设施上部署多层次服务.OpenNebula分为三层,即接口层、核心层和驱动层.接口层提供原生的XML-RPC接口,同时实现了EC2、OCCI(开放云计算接口)和OpenNebulaCloudAPI(OCA)等多种API,为用户访问提供了多种选择.核心层提供统一的插件管理、请求管理、VM生命周期管理、Hypervisor管理、网络资源管理和存储资源管理等核心功能.最底层是由各种驱动构成的驱动层与虚拟化软件(KVM、XEN)和物理基础设施交互.OpenStack是一个开源云计算虚拟架构,用户可以使用它来建立并运行他们的云计算和存储架构.用户通过AmazonEC2/S3兼容的API来使用OpenStack提供的云计算服务,并使得为亚马逊网络服务(AWS)所写的客户工具也可以和OpenStack一起使用.OpenStack在SOA和服务化组件解耦上是做得最好的.OpenStack整体架构分也3层,最上层为应用程序和管理门户(Horizon)、API等接入层;核心层包括计算服务(Nova)、存储服务(包括对象存储服务Swift和块存储服务Cinder)和网络服务(Quantum);第3层为共享服务,现在为账户权限管理服务(keystone)和镜像服务(Glance).Nimbus系统是一个开源系统,提供和AmazonEC2兼容的接口,能够快速方便地生成一个虚拟机集群,这样就可以像普通集群一样使用集群调度系统在上面进行任务调度.Nimbus也支持不同的虚拟实现(Xen和KVM).它主要被应用在科学计算领域.数据采集 足够的数据量是企业大数据战略建设的基础,因此数据采集就成了大数据分析的前站.采集是大数据价值挖掘重要的一环,其后的分析挖掘都建立在采集的基础上.大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,从中分析和挖掘出有价值的信息,但前提是拥有大量的数据.绝大多数的企业现在还很难判断,到底哪些数据未来将成为资产,通过什么方式将数据提炼为现实收入.对于这一点即便是大数据服务企业也很难给出确定的答案.但有一点是肯定的,大数据时代,谁掌握了足够的数据,谁就有可能掌握未来,现在的数据采集就是将来的资产积累.数据的采集有基于物联网传感器的采集,也有基于网络信息的数据采集.比如在智能交通中,数据的采集有基于GPS的定位信息采集、基于交通摄像头的视频采集,基于交通卡口的图像采集,基于路口的线圈信号采集等.而在互联网上的数据采集是对各类网络媒介,如搜索引擎、新闻网站、论坛、微博、博客、电商网站等的各种页面信息和用户访问信息进行采集,采集的内容主要有文本信息、URL、访问日志、日期和图片等.之后我们需要把采集到的各类数据进行清洗、过滤、去重等各项预处理并分类归纳存储.数据采集过程中的ETL工具负责将分布的、异构数据源中的不同种类和结构的数据如文本数据、关系数据、以及图片、视频等非结构化数据等抽取到临时中间层后进行清洗、转换、分类、集成,最后加载到对应的数据存储系统如数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础.针对大数据的ETL工具同时又有别于传统的ETL处理过程,因为一方面大数据的体量巨大,另一方面数据的产生速度也非常快,比如一个城市的视频监控头、智能电表每一秒钟都在产生大量的数据,对数据的预处理需要实时快速,因此在ETL的架构和工具选择上,也会采用如分布式内存数据库、实时流处理系统等现代信息技术.现代企业中存在各种不同的应用和各种数据格式及存储需求,但在企业之间、企业内部都存在条块分割、信息孤岛的现象,各个企业之间的数据不能实现可控的数据交换和共享,而且各个应用之间由于涉及到开发技术和环境的限制也为企业的数据共享设置了障碍,阻碍了企业各个应用之间和数据交换和共享,也阻碍了企业对数据可控,数据管理,数据安全方面的需求.为实现跨行业跨部门的数据整合,尤其是在智慧城市建设中,需要制定统一的数据标准、交换接口以及共享协议,这样不同行业、不同部门、不同格式的数据才能基于一个统一的基础进行访问、交换和共享.通过实现企业数据总线(EDS),可以提供对企业应用中各类数据的存取功能,把企业数据的存取集成与企业的功能集成分离开来.企业数据总线有效地创建了一层数据访问抽象层,使业务功能避开企业数据访问的细节.业务组件只需包含服务功能组件(用以实现现有服务功能)和数据访问组件(通过使用企业数据总线的方式).通过企业数据总线这种方式,为企业的管理数据模型和应用系统数据模型间提供了一个统一的转换接口,并有效减少了各应用服务之间的耦合度.在大数据场景下,企业数据总线上会存在大量的同步的数据访问请求,总线上任何一个模块性能下降,都会大大影响总线功能,因此企业数据总线也需要采用大规模并发式、具备高可扩展性的实现方式.数据存储 大数据每年都在激增庞大的信息量,加上已有的历史数据信息,对整个业界的数据存储、处理带来了很大的机遇与挑战.为了满足快速增长的存储需求,云存储需要具备高扩展性、高可靠性、高可用性、低成本、自动容错和去中心化等特点.常见的云存储形式可以分为分布式文件系统和分布式数据库.其中,分布式文件系统采用大规模的分布式存储节点来满足存储大量文件的需求,而分布式的NoSQL数据库则为大规模非结构化数据的处理和分析提供支持.Google在早期面对海量互联网网页的存储及分析难题时,率先开发出了Google文件系统GFS[13]以及基于GFS的MapReduce分布式计算分析模型[15,18,31].由于一部分的Google应用程序需要处理大量的格式化以及半格式化数据,Google又构建了弱一致性要求的大规模数据库系统BigTable[14],能够对海量数据进行索引、查询和分析.Google的这一系列产品,开创了云计算时代大规模数据存储、查询和处理的先河,也成为了这个领域的事实上的标准,在技术上一直保持领先地位.由于Google的技术并不对外开放,因此Yahoo以及开源社区协同开发了Hadoop系统,相当于GFS和MapReduce的开源实现.其底层的Hadoop文件系统HDFS和GFS的设计原理完全是一致的,同时也实现了Bigtable的开源系统HBase分布式数据库.Hadoop以及HBase自推出以来在全世界得到了广泛的应用,现在已经由Apache基金会管理,Yahoo本身的搜索系统就是运行在上万台的Hadoop集群之上.Google文件系统充分考虑了在一个大规模数据集群中运行分布式文件系统所面对的非常严酷的环境:1)充分考虑到大量节点的失效问题,需要通过软件将容错以及自动恢复功能集成在系统中;2)构造特殊的文件系统参数,文件通常大小以G字节计,并包含大量小文件;3)充分考虑应用的特性,增加文件追加操作,优化顺序读写速度;4)文件系统的某些具体操作不再透明,需要应用程序的协助完成.Fig.1SystemarchitectureofGoogle图1Google的系统架构图1描述了Google的系统架构,即一个GFS集群包含一个主服务器(GFSMaster)和多个块服务器(GFSchunkserver),被多个客户端访问(GFSClient).大文件被分割成固定尺寸的块,块服务器把块作为Linux文件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据.为了保证可靠性,每个块被缺省保存三个备份.主服务器管理文件系统所有的元数据,包括名字空间,访问控制,文件到块的映射,块物理位置等相关信息.通过服务器端和客户端的联合设计,GFS对应用支持达到性能与可用性最优.GFS是为Google应用程序本身而设计的,在内部部署了许多GFS集群.有的集群拥有超过几千个的存储节点,超过PB的存储空间,被不同机器上的数千个客户端连续不断的频繁访问着.为了应对海量数据的挑战,一些商业数据库系统试图结合传统的RDBMS技术和分布式及并行计算技术,来处理大数据的需求.很多系统还是从硬件层面来对数据处理进行加速.比较典型的系统有IBM的Netezza,Oracle的Exadata,EMC的Greenplum,HP的Vertica,以及Teradata.这些系统从功能上来讲,能够继续支持传统数据库及数据仓库的操作语义和分析模式,而在扩展性上,也能利用大规模的集群资源对数据进行并行处理,大大加速数据的加载、索引和查询处理时间.Netezza和Exadata都是采用的数据仓库一体机的方案.把软件与硬件结合在一起,无缝的整合数据库管理系统(DBMS)、服务器(Server)、存储设备(Storage)及网络.对于最终用户来说一体机能够快速简易的安装,通过标准的接口和简单的操作来满足用户的需求.然而这些一体机解决方案存在硬件价格昂贵,系统开销能耗大,系统服务费昂贵,系统升级扩容时也需要整体购置等缺点.Oracle的Exadata最大的问题还是在于SharedEverything的架构,导致IO的处理能力有限,而且扩展能力也有限.Exadata的储存层不能互相通信,任何中间计算的结果必须先从储存层传递到RACNode,然后通过RACNode传递到对应的储存层Node,然后计算.大量的数据移动又造成了不必要的IO和网络资源消耗.Exadata在查询性能上不太稳定,在性能调优方面也需要经验和深入的知识.NoSQL数据库,顾名思义就是打破了传统的关系数据库的范式约束.很多NoSQL数据库从数据存储的角度来看,也不是关系型的数据库,而是key-value数据格式的散列数据库.由于放弃了关系数据库强大的SQL查询语言和事务一致性以及范式的约束,NoSQL数据库可以在很大程度上解决传统关系数据库面临的诸多挑战.在设计上,它们非常关注对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,在扩展性、并发性及容错性等方面具有很大优势.现在主流NoSQL数据库有Google开发的BigTable,以及类似BigTable的开源实现HBase、和出自Facebook的Cassandra等.由于一部分的Google应用程序需要处理大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable.BigTable的应用包括搜索日志,地图,Orkut网络社区,RSS阅读器等.Fig.2DatamodelinBigTable图2BigTable的数据模型图2中描述了在BigTable模型中应用的数据模型.数据模型包括行列以及相应的时间戳,所有的数据都存放在表格单元中.BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中.这一个小表就被称为Tablet.与前述的系统类似,BigTable也是客户端和服务器端的联合设计,使得性能能够最大程度地符合应用的需求.BigTable系统依赖于集群系统的底层结构,一个是分布式的集群任务调度器,一个是前述的Google文件系统,还有一个分布式的锁服务Chubby.Chubby是一个非常健壮的粗粒度锁,BigTable使用Chubby来保存根数据表格的指针,即用户可以首先从Chubby锁服务器中获得根表的位置,进而对数据进行访问.BigTable使用一台服务器作为主服务器,用来保存和操作元数据.主服务器除了管理元数据之外,还负责对于tablet服务器(即一般意义上的数据服务器)进行远程管理与负载调配.客户端通过编程接口与主服务器进行元数据通信,与tablet服务器进行数据通信.在大规模分布式数据库方面,HBase及Cassandra等主流NoSQL数据库主要是提供高可扩展性支持,在一致性和可用性方面会做相应的牺牲,在对传统的RDBMS的ACID语义、事务支持等方面存在不足.Google的Megastore[32]则是努力把NoSQL与传统的关系型数据库融合,并为一致性和高可用性提供了强有力的保证.Megastore使用同步复制来达到高可用性和数据的一致性视图.简而言之,MegaStore对“不同地域的低延迟性的数据副本”提供了完全的串行化ACID语义来支持交互的在线服务.Megastore兼具了NoSQL和RDBMS两者的优点,在保障一致性的原则下,又能满足高可扩展性、高容错性和低延迟,为Google的上百个生产应用提供服务.数据计算面向大数据处理的数据查询、统计、分析、挖掘等需求,促生了大数据计算的不同计算模式,整体上我们把大数据计算分为离线批处理计算、实时交互计算和流计算三种.离线批处理随着云计算技术到广泛的应用的发展,基于开源的Hadoop分布式存储系统和MapReduce数据处理模式的分析系统也得到了广泛的应用.Hadoop通过数据分块及自恢复机制,能支持PB级的分布式的数据存储,以及基于MapReduce分布式处理模式对这些数据进行分析和处理.MapReduce编程模型可以很容易的将多个通用批数据处理任务和操作在大规模集群上并行化,而且有自动化的故障转移功能.MapReduce编程模型在Hadoop这样的开源软件带动下被广泛采用,应用到Web搜索、欺诈检测等各种各样的实际应用中.Hadoop是一个能够对大量数据进行分布式处理的软件框架,而且是以一种可靠、高效、可伸缩的方式进行处理,依靠横向扩展,通过不断增加廉价的商用服务器来提高计算和存储能力.用户可以轻松地在上面开发和运行处理海量数据的应用程序,我们总结出Hadoop主要有以下几个优点:高可靠性:按位存储和处理数据的能力值得人们信赖;高扩展性:在可用的计算机集群中分配数据并完成计算任务,这些集群可以方便地扩展到数以千计的节点规模;高效性:能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快;高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配.Fig.3TheHadoopecosystem图3Hadoop生态圈以Hadoop平台为代表的大数据处理平台技术[61]包括MapReduce,HDFS,HBase,Hive,Zookeeper,Avro[48]和Pig等,已经形成了一个Hadoop生态圈,如图3所示.MapReduce编程模型是Hadoop的心脏,用于大规模数据集的并行运算.正是这种编程模式,实现了跨越一个Hadoop集群中数百或数千台服务器的大规模扩展性;分布式文件系统HDFS提供基于Hadoop处理平台的海量数据存储,其中的NameNode提供元数据服务,DataNode用于存储文件系统的文件块;HBase是建立在HDFS之上,用于提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统,可以存储非结构化和半结构化的松散数据;Hive[17]是基于Hadoop的大型数据仓库,可以用来进行数据的提取、转化和加载(ETL),存储、查询和分析存储在Hadoop中的大规模数据;Pig[21]是基于Hadoop的大规模数据分析平台,可以把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算,为复杂的海量数据并行计算提供了一个简单的操作和编程接口;Zookeeper[19]是高效、可靠的协同工作系统,用于协调分布式应用上的各种服务,利用Zookeeper可以构建一个有效防止单点失效及处理负载均衡的协调服务;Avro作为二进制的高性能的通讯中间件,提供了Hadoop平台间的数据序列化功能和RPC服务.但Hadoop平台主要是面向离线批处理应用的,典型的是通过调度批量任务操作静态数据,计算过程相对缓慢,有的查询可能会花几小时甚至更长时间才能产生结果,对于实时性要求更高的应用和服务则显得力不从心.MapReduce是一种很好的集群并行编程模型,能够满足大部分应用的需求.虽然MapReduce是分布式/并行计算方面一个很好的抽象,但它并不一定适合解决计算领域的任何问题.例如,对于那些需要实时获取计算结果的应用,像基于流量的点击付费模式的广告投放,基于实时用户行为数据分析的社交推荐,基于网页检索和点击流量的反作弊统计等等.对于这些实时应用,MapReduce并不能提供高效处理,因为处理这些应用逻辑需要执行多轮作业,或者需要将输入数据的粒度切分到很小.MapReduce模型存在以下局限性:中间数据传输难以充分优化;单独任务重启开销很大;中间数据存储开销大;主控节点容易成为瓶颈;仅支持统一的文件分片大小,很难处理大小不一的复杂文件集合;难以对结构化数据进行直接存储和访问.除了MapReduce计算模型之外,以Swift[38,39]为代表的工作流计算模式,Pregel[20]为代表的图计算模式,也都可以处理包含大规模的计算任务的应用流程和图算法.Swift系统作为科学工作流和并行计算之间的桥梁,是一个面向大规模科学和工程工作流的快速、可靠的定义、执行和管理的并行化编程工具.Swift采用结构化的方法管理工作流的定义、调度和执行,它包含简单的脚本语言SwiftScript,SwiftScript可以用来简洁的描述基于数据集类型和迭代的复杂并行计算[40],同时还可以对不同数据格式的大规模数据进行动态的数据集映射.运行时系统提供一个高效的工作流引擎用来进行调度和负载均衡,它还可以与PBS和Condor等资源管理系统进行交互,完成任务执行.Pregel是一种面向图算法的分布式编程框架,可以用于图遍历、最短路径、PageRank计算等.它采用迭代的计算模型:在每一轮,每个顶点处理上一轮收到的消息,并发出消息给其它顶点,并更新自身状态和拓扑结构(出、入边)等.实时交互计算当今的实时计算一般都需要针对海量数据进行,除了要满足非实时计算的一些需求(如计算结果准确)以外,实时计算最重要的一个需求是能够实时响应计算结果,一般要求为秒级.实时计算一般可以分为以下两种应用场景:数据量巨大且不能提前计算出结果的,但要求对用户的响应时间是实时的主要用于特定场合下的数据分析处理.当数据量庞大,同时发现无法穷举所有可能条件的查询组合,或者大量穷举出来的条件组合无用的时候,实时计算就可以发挥作用,将计算过程推迟到查询阶段进行,但需要为用户提供实时响应.这种情形下,也可以将一部分数据提前进行处理,再结合实时计算结果,以提高处理效率.数据源是实时的不间断的,要求对用户的响应时间也是实时的数据源实时不间断的也称为流式数据.所谓流式数据是指将数据看作是数据流的形式来处理.数据流是在时间分布和数量上无限的一系列数据记录的集合体;数据记录是数据流的最小组成单元.例如,在物联网领域传感器产生的数据可能是源源不断的.对于流式处理系统我们将分开在下一节具体介绍.实时的数据计算和分析可以动态实时地对数据进行分析统计,对于系统的状态监控、调度管理具有重要的实际意义.海量数据的实时计算过程可以被划分为以下三个阶段:数据的产生与收集阶段、传输与分析处理阶段、存储和对外提供服务阶段.如图4所示.Fig.4Theprocessofreal-timecalculation图4实时计算过程数据实时采集在功能上需要保证可以完整地收集到所有数据,为实时应用提供实时数据;响应时间上要保证实时性、低延迟;配置简单,部署容易;系统稳定可靠等.目前,互联网企业的海量数据采集工具,有Facebook开源的Scribe[50]、LinkedIn开源的Kafka[34]、Cloudera开源的Flume[35]、淘宝开源的TimeTunnel[36]、Hadoop的Chukwa[37]等,均可以满足每秒数百MB的日志数据采集和传输需求.数据实时计算:传统的数据操作,首先将数据采集并存储在数据库管理系统(DBMS)中,然后通过query和DBMS进行交互,得到用户想要的答案.整个过程中,用户是主动的,而DBMS系统是被动的.但是,对于现在大量存在的实时数据,这类数据实时性强,数据量大,数据格式多种多样,传统的关系型数据库架构并不合适.新型的实时计算架构一般都是采用海量并行处理MPP的分布式架构,数据的存储及处理会分配到大规模的节点上进行,以满足实时性要求,在数据的存储上,则采用大规模分布式文件系统,比如Hadoop的HDFS文件系统,或是新型的NoSQL分布式数据库.实时查询服务的实现可以分为三种方式:1)全内存:直接提供数据读取服务,定期dump到磁盘或数据库进行持久化.2)半内存:使用Redis、Memcache、MongoDB、BerkeleyDB等数据库提供数据实时查询服务,由这些系统进行持久化操作.3)全磁盘:使用HBase等以分布式文件系统(HDFS)为基础的NoSQL数据库,对于key-value引擎,关键是设计好key的分布.实时和交互式计算技术中,Google的Dremel[40]系统表现最为突出.Dremel是Google的“交互式”数据分析系统.可以组建成规模上千的集群,处理PB级别的数据.作为MapReduce的发起人,Google开发了Dremel系统将处理时间缩短到秒级,作为MapReduce的有力补充.Dremel作为GoogleBigQuery的report引擎,获得了很大的成功.和MapReduce一样,Dremel也需要和数据运行在一起,将计算移动到数据上面.它需要GFS这样的文件系统作为存储层.Dremel支持一个嵌套(nested)的数据模型,类似于JSON.而传统的关系模型,由于不可避免的有大量的Join操作,在处理如此大规模的数据的时候,往往是有心无力的.Dremel同时还使用列式存储,分析的时候,可以只扫描需要的那部分数据,减少CPU和磁盘的访问量.同时列式存储是压缩友好的,使用压缩,可以减少存储量,发挥最大的效能.Spark[41]是由加州大学伯克利分校AMP实验室开发的实时数据分析系统,采用一种与Hadoop相似的开源集群计算环境,但是Spark在任务调度、工作负载优化方面设计和表现更加优越.Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载[46].Spark是在Scala语言中实现的,它将Scala用作其应用程序框架.Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集.创建Spark可以支持分布式数据集上的迭代作业,是对Hadoop的有效补充,支持对数据的快速统计分析.它也可以在Hadoop文件系统中并行运行,通过名为Mesos的第三方集群框架支持此功能.Spark可用来构建大型的、低延迟的数据分析应用程序.由Cloudera公司最近发布的Impala[42]系统,类似于Google的Dremel系统,是一个有效的大数据实时查询工具.Impala能在HDFS或HBase上提供快速、交互式SQL查询,它除了使用统一的存储平台,还使用了与Hive相同的Metastore及SQL语法等,为批处理和实时查询提供了一个统一的平台.流计算在很多实时应用场景中,比如实时交易系统、实时诈骗分析、实时广告推送[23]、实时监控、社交网络实时分析等,存在数据量大,实时性要求高,而且数据源是实时不间断的.新到的数据必须马上处理完,不然后续的数据就会堆积起来,永远也处理不完.反应时间经常要求在秒级以下,甚至是毫秒级,这就需要一个高度可扩展的流式计算解决方案.流计算[24]就是针对实时连续的数据类型而准备的.在流数据不断变化的运动过程中实时地进行分析,捕捉到可能对用户有用的信息,并把结果发送出去.整个过程中,数据分析处理系统是主动的,而用户却是处于被动接收的状态.如图5所示.Fig.5Theprocessofflowcalculation图5流计算过程传统的流式计算系统,一般是基于事件机制,所处理的数据量也不大.新型的流处理技术,如Yahoo的S4[22][26]主要解决的是高数据率和大数据量的流式处理.S4是一个通用的、分布式的、可扩展的、部分容错的,可插拔的平台.开发者可以很容易的在其上开发面向无界不间断流数据处理的应用.数据事件被分类路由到处理单元(processingElements,PEs),处理单元消费这些事件,并作如下的处理:发出一个或多个可能被其他PE处理的事件;发布结果.S4的设计主要由大规模应用在生产环境中的数据采集和机器学习所驱动.其主要特点有:提供一种简单的编程接口来处理数据流设计一个可以在普通硬件之上可扩展的高可用集群.通过在每个处理节点使用本地内存,避免磁盘I/O瓶颈达到最小化延迟使用一个去中心的,对等架构;所有节点提供相同的功能和职责.没有担负特殊责任的中心节点.这大大简化了部署和维护.使用可插拔的架构,使设计尽可能的既通用又可定制化.友好的设计理念,易于编程,具有灵活的弹性.S4的设计和IBM的流处理核心SPC中间件[53]有很多相同的特性.两个系统都是为了大数据量设计的.都具有使用用户定义的操作在持续数据流上采集信息的能力.两者主要的区别在架构的设计上,SPC的设计源于Publish/Subscribe模式,而S4的设计是源于MapReduce和Actor模式的结合.Yahoo!相信因为其对等的结构,S4的设计达到了非常高程度的简单性.集群中的所有节点都是等同的,没有中心控制.SPC是一种分布式的流处理中间件,用于支持从大规模的数据流中抽取信息的应用.SPC包含了为实现分布式的、动态的、可扩展的应用而提供的编程模式和开发环境,其编程模式包括用于申明和创建处理单元(PE)的API,以及组装、测试、调试和部署应用的工具集.与其他流处理中间件不同的是,SPC除了支持关系型的操作符外,还支持非关系型的操作符和用户自定义函数.Storm[43]是Twitter开源的一个类似于Hadoop的实时数据处理框架,这种高可拓展性,能处理高频数据和大规模数据的实时流计算解决方案将应用于实时搜索,高频交易和社交网络上.Storm有三大作用领域:信息流处理(StreamProcessing)Storm可以用来实时处理新数据和更新数据库,兼具容错性和可扩展性.连续计算(ContinuousComputation)Storm可以进行连续查询并把结果即时反馈给客户,比如将Twitter上的热门话题发送到客户端.分布式远程过程调用(DistributedRPC)Storm可以用来并行处理密集查询,Storm的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果.数据展现与交互计算结果需要以简单直观的方式展现出来,才能最终为用户所理解和使用,形成有效的统计、分析、预测及决策,应用到生产实践和企业运营中,因此大数据的展现技术,以及与数据的交互技术在大数据全局中也占据重要的位置.Excel形式的表格和图形化展示方式是人们熟知和使用已久的数据展示方式,也为日常的简单数据应用提供了极大的方便.华尔街的很多交易员还都依赖Excel和他们很多年积累和总结出来的公式来进行大宗的股票交易,而微软公司和一些创业者也看到市场潜力,在开发以Excel为展示和交互方式,结合Hadoop等技术的大数据处理平台.人脑对图形的理解和处理速度,大大高于文字.因此,通过视觉化呈现数据,可以深入展现数据中的潜在的或复杂的模式和关系.随着大数据的兴起,也涌现了很多新型的数据展现和交互方式,和专注于这方面的一些创业公司.这些新型方式包括交互式图表,可以在网页上呈现,并支持交互,可以操作、控制图标、动画和演示.另外交互式地图应用如Google地图,可以动态标记、生成路线、叠加全景航拍图等,由于其开放的API接口,可以跟很多用户地图和基于位置的服务应用结合,因而获得了广泛的应用.GoogleChartTools也给网站数据可视化提供了很多种灵活的方式.从简单的线图、Geo图、gauges(测量仪),到复杂的树图,GoogleChartTools提供了大量设计优良的图表工具.诞生于斯坦福大学中的大数据创业公司Tableau[44]正逐渐成为优秀的数据分析工具之一.Tableau将数据运算与美观的图表完美地接合在一起,如图6所示.公司可以用它将大量数据拖放到数字“画布”上,转眼间就能创建好各种图表.Tableau的设计与实现理念是:界面上的数据越容易操控,公司对自己在所在业务领域里的所作所为到底是正确还是错误,就能了解得越透彻.快速处理,便捷共享,是Tableau的另一大特性.仅需几秒钟,TableauServer就可以将交互控制面板发布在网上,用户只需要一个浏览器,就可以方便的过滤、选择数据并且对他们的问题得到回应,这将使得用户使用数据的积极性大大增加.另一家大数据可视化创业公司Visual.ly[45]以丰富的信息图资源而著称.它是一个社会化的信息图创作分享平台.我们生活在数据收集和内容创作的时代,Visual.ly正是这个数据时代的产物,一个全新的可视化信息图新平台,很多用户乐意把自己制作的信息图上传到网站中与他人分享.信息图形将极大的刺激视觉表现,促进用户间相互学习、讨论.拥有探索分享及推广的可视化服务.用Visual.ly制作信息图并不复杂,它是一个自动化工具,让人快速而简易插入不同种类的数据,并通过图形把数据表达出来.Fig.6ThevisualizationexamplesofTableau图6Tableau可视化示例 此外,3D数字化渲染技术也被广泛地应用在很多领域,如数字城市、数字园区、模拟与仿真、设计制造等,具备很高的直观操作性.现代的增强现实AR技术,它通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在.结合虚拟3D的数字模型和真实生活中的场景,提供了更好的现场感和互动性.通过AR技术,用户可以和虚拟的物体进行交互,如试戴虚拟眼镜、试穿虚拟衣服、驾驶模拟飞行器等.在德国,工程技术人员,在进行机械安装、维修、调式时,通过头盔显示器,可以将原来不能呈现的机器内部结构,以及它的相关信息、数据完全呈现出来.现代的体感技术,如微软的Kinect以及Leap公司的LeapMotion体感控制器,能够检测和感知到人体的动作及手势,进而将动作转化为对电脑及系统的控制,使人们摆脱了键盘、鼠标、遥控器等传统交互设备的束缚,直接用身体和手势来与电脑和数据交互.当今热门的可穿戴式技术,如Google眼镜,则有机地结合了大数据技术、增强现实、以及体感技术.随着数据的完善和技术的成熟,我们可以实时地感知我们周围的现实环境,并且通过大数据搜索、计算,实现对周遭的建筑、商家、人群、物体的实时识别和数据获取,并叠加投射在我们的视网膜上,这样可以实时地帮助我们工作、购物、休闲等,提供极大的便利.当然这种新型设备和技术的弊端也是显而易见,我们处在一个随时被监控、隐私被刺探、侵犯的状态,所以大数据技术所带来的安全性问题也不容忽视.相关研究与我们的工作大数据的规模效应给数据存储管理以及数据分析带来了极大的挑战,数据管理方式上的变革正在酝酿和发生,孟晓峰等学者对大数据的基本概念进行剖析并对大数据的主要应用作简单对比,阐述并分析了大数据处理的基本框架和云计算技术对大数据时代数据管理所产生的作用,同时归纳总结大数据时代所面临的新挑战[49].陶雪娇等人[51]介绍并分析了大数据的相关概念、特点、大数据技术特别是在数据挖掘方面国内外发展状况以及我们在大数据时代面临的挑战.同时,有些学者指出面对数据处理的实时性有效性需求,我们需要根据大数据特点对传统的常规数据处理技术进行技术变革,形成适用于大数据收集、存储、管理、处理、分析、共享和可视化的技术[52].上述综述性论文更加注重于分析大数据技术的特点和发展趋势,对大数据技术面临的问题和分类介绍概括不够完善.大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点,从大数据分析和数据仓库架构设计角度,文献[33]首先列举了大数据分析平台需要具备的几个重要特性,并对当前的主流实现平台并行数据库、MapReduce及基于两者的混合架构行了分析归纳,指出了各自的优势及不足,HadoopDB[59][60]正是两种架构相结合的一种尝试.一些学者从RDBMS和MapReduce的竞争与共生关系进行探讨,分析二者在发展过程中遇到的挑战并指出关系数据管理技术和非关系数据管理技术在不断的竞争中互相取长补短,在新的大数据分析生态系统内找到自己的位置[55][58].在NoSQL系统的研究上,申德荣等[56]学者系统性总结了NoSQL系统的相关研究,包括体系结构、数据模型、访问方式、索引技术、事务特性、系统弹性、动态负载均衡、副本策略、数据一致性策略、基于flash的多级缓存机制、基于MapReduce的数据处理策略和新一代数据管理系统.上述综述性论文更多的偏向于介绍面向海量数据的数据存储,分析不同的存储策略和优缺点,缺少对大数据技术的全面性阐述,忽略了不同大数据技术之间以及大数据技术与云计算的协同作用.21世纪的现代科学给科学研究人员带来了巨大的挑战.科学界正面临着来自实验数据、模拟数据、传感器数据和卫星数据等“数据泛滥”问题[1],数据规模、科学分析和处理复杂度呈指数级增长.科学工作流管理系统(SWFMS)为科学计算提供了如数据管理、任务相关性、作业调度与执行、资源跟踪等必要的支持.Taverna[65],Kepler[63],Vistrails[64],Pegasus[62],Swift[39],VIEW[66]等工作流系统在许多领域都有广泛的应用,如物理学、天文学、生物信息学、神经科学、地球学和社会科学等.同时,科学设备和网络计算的发展向可靠的工作流系统在数据规模和应用复杂度方面发起了新的挑战.我们将科学工作流系统与云平台结合并作为云计算中的一项服务[67],来处理日益增长的数据量和分析复杂度,拥

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论