大数据技术研究综述摘要:大数据是继云计算、物联网之后IT产业又一次颠覆性的技术革命。文中介绍了大数据的概念、典型的4“V”特征以及大数据的关键技术,归纳总结了大数据处理的一般流程,针对其中的关键技术,如MapReduce、GFS、Hadoop以及NoSQL等,介绍了基本的情况。最后,本文对大数据时代做了总结与展望。关键词:大数据;数据处理技术;云计算1当人们还在津津乐道云计算、物联网等主题时,一个崭新的概念——大数据横空出世。大数据是继云计算、物联网之后IT产业又一次颠覆性的技术革命,对国家治理模式、企业决策、组织和业务流程,以及个人生活方式等都将产生巨大的影响。大数据的挖掘和应用可创造出超万亿美元的价值,将是未来IT领域最大的市场机遇之一,其作用堪称又一次工业革命[1]。我们身处数据的海洋,几乎所有事物都与数据有关,环境、金融、医疗……我们每天都在产生数据,打电话、发短信、进地铁站安检、进办公楼刷卡、在QQ上聊天、上淘宝网购物……大量数据实时地影响我们的工作、生活乃至社会发展。数据成为与自然资源、人力资源同样重要的战略资源,引起了科技界和企业界的高度重视。1大数据的概念大数据本身就是一个很抽象的概念,提及大数据很多人也只能从数据量上去感知大数据的规模,如:百度每天大约要处理几十PB的数据;Facebook每天生成300TB以上的日志数据;据著名咨询公司IDC的统计,2011年全球被创建和复制的数据总量为1.8ZB(1021),但仅仅是数据量并不能区分大数据与传统的海量数据的区别。在2008年《Science》杂志出版的专刊中,大数据被定义为“代表着人类认知过程的进步,数据集的规模是无法在可容忍的时间内用目前的技术、方法和理论去获取、管理、处理的数据”[2]。大数据不是一种新技术,也不是一种新产品,而是一种新现象,是近来研究的一个技术热点。大数据具有以下4个特点,即4个“V”:(1)数据体量(Volumes)巨大。大型数据集,从TB级别,跃升到PB级别。(2)数据类别(Variety)繁多。数据来自多种数据源,数据种类和格式冲破了以前所限定的结构化数据范畴,囊括了半结构化和非结构化数据。(3)价值(Value)密度低。以视频为例,连续不间断监控过程中,可能有用的数据仅仅一两秒钟。(4)处理速度(Velocity)快。包含大量在线或实时数据分析处理的需求,1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不同。物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。2大数据技术是指从各种各样类型的巨量数据中,快速获得有价值信息的技术。解决大数据问题的核心是大数据技术。目前所说的大数据不仅指数据本身的规模,也包括采集数据的工具、平台和数据分析系统。大数据研发目的是发展大数据技术并将其应用到相关领域,通过解决巨量数据处理问题促进其突破性发展。因此,大数据时代带来的挑战不仅体现在如何处理巨量数据从中获取有价值的信息,也体现在如何加强大数据技术研发,抢占时代发展的前沿。2大数据处理流程从大数据的特征和产生领域来看,大数据的来源相当广泛,由此产生的数据类型和应用处理方法千差万别。但是总的来说,大数据的基本处理流程大都是一致的。整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,最后是数据挖掘。2.1数据采集大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。2.2数据导入/预处理虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百3兆,甚至千兆级别。2.3数据统计/分析统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。2.4数据挖掘与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。整个大数据处理的普遍流程至少应该满足这四个方面的步骤,才能算得上是一个比较完整的大数据处理3大数据关键技术在大数据处理流程中,最核心的部分就是对于数据信息的分析处理,所以其中所运用到的处理技术也就至关重要。提起大数据的处理技术,就不得不提起“云计算”,这是大数据处理的基础,也是大数据分析的支撑技术。分布式文件系统为整个大数据提供了底层的数据贮存支撑架构;为了方便数据管理,在分布式文件系统的基础上建立分布式数据库,提高数据访问速度;在一个开源的数据实现平台上利用各种大数据分析技术可以对不同种类、不同需求的数据进行分析整理得出有益信息,最终利用各种可视化技术形象地显示给数据用户,满足用户的各种需求。43.1云计算和MapReduce3.1.1云计算云计算是大数据分析处理技术的核心原理,也是大数据分析应用的基础平台。Google内部的各种大数据处理技术和应用平台都是基于云计算,最典型的就是以分布式文件系统GFS、批处理技术MapReduce、分布式数据库BigTable为代表的大数据处理技术以及在此基础上产生的开源数据处理平台Hadoop。3.1.2MapReduceMapReduce技术是Google公司于2004年提出,作为一种典型的数据批处理技术被广泛的应用于数据挖掘、数据分析、机器学习等领域,并且,MapReduce因为它并行式数据处理的方式已经成为大数据处理的关键技术[3]。MapReduce系统主要由两个部分组成:Map和Reduce。MapReduce的核心思想在于“分而治之”,也就是说,首先将数据源分为若干部分,每个部分对应一个初始的键-值(key/Value)对,并分别给不同的Map任务区处理,这时的Map对初始的键-值(key/Value)对进行处理,产生一系列中间结果key/Value对,MapReduce的中间过程Shuffle将所有具有相同key值的Value值组成一个集合传递给Reduce环节;Reduce接收这些中间结果,并将相同的Value值合并,形成最终的较小Value值的集合。MapReduce系统的提出简化了数据的计算过程,避免了数据传输过程中大量的通信开销,使得MapReduce可以运用到多种实际问题的解决方案里,公布之后获得了极大的关注,在各个领域均有广泛的应用。3.2分布式文件系统谈到分布式文件系统,不得不提的是Google的GFS。基于大量安装有Linux操作系统的普通PC构成的集群系统,整个集群系统由一台Master(通常有几台备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk有多份(通常为3份)拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的Metadata,即文件名及其Trunk信息。客户端先从Master上得到文件的Metadata,5根据要读取的数据在文件中的位置与相应的TrunkServer通信,获取文件数据。在Google的论文发表后,就诞生了Hadoop。截至今日,Hadoop被很多中国最大互联网公司所追捧,百度的搜索日志分析,腾讯、淘宝和支付宝的数据仓库都可以看到Hadoop的身影。Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量数据存储和计算任务。Hive是一个基于Hadoop的数据仓库平台,将转化为相应的MapReduce程序基于Hadoop执行。通过Hive,开发人员可以方便地进行ETL开发。3.3NoSQL随着数据量增长,越来越多的人关注NoSQL,特别是2010年下半年,Facebook选择HBase来做实时消息存储系统,替换原来开发的Cassandra系统。这使得很多人开始关注HBase。Facebook选择HBase是基于短期小批量临时数据和长期增长的很少被访问到的数据这两个需求来考虑的。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建大规模结构化存储集群。HBase是BigTable的开源实现,使用HDFS作为其文件存储系统。Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用MapReduce来处理HBase中的海量数据;BigTable利用Chubby作为协同服务,HBase则利用Zookeeper作为对应。如下图1所示,是线上应用系统与数据平台的无缝融入交互图。图1线上应用系统与数据平台的无缝融入6近来NoSQL数据库的使用越来越普及,几乎所有的大型互联网公司都在这个领域进行着实践和探索。在享受了这类数据库与生俱来的扩展性、容错性、高读写吞吐外(尽管各主流NoSQL仍在不断完善中),越来越多的实际需求把人们带到了NoSQL并不擅长的其他领域,比如搜索、准实时统计分析、简单事务等。实践中一般会在NoSQL的外围组合一些其他技术形成一个整体解决方案。4总结与展望大数据已经涉及到生活的各个领域,对于大数据的研究涉及的领域也很广。与人们直接利益相关的大数据的能耗、安全、隐私保护等都受到了很多企业和个人的关注,还有更多未知的领域也不例外。本文对近几年国内外大数据的相关研究成果进行了较为全面的总结和介绍,阐述了大数据的相关概念、产生背景和4“V”特征,概括出了大数据的一般处理流程,详细介绍了大数据的几种关键技术,重点描述了典型的云计算技术在大数据分析过程中的基础性作用。总体来说,目前对于大数据的研究尚属起步阶段,还有很多问题亟待解决。大数据时代已经来临,如何从海量数据中发现知识、获取信息,寻找隐藏在大数据中的模式、趋势和相关性,揭示社会运行和发展规律,以及可能的科研、商业、工业等应用前景,都需要我们更加深入的了解大数据,并具有更加深刻的数据洞察力。参考文献[1]严霄凤,张德馨.大数据研究[J].计算机技术与发展.2013(04):168-172.[2]GRAHAM-ROWED,GOLDSTOND,DOCTOROWC,etal.Bigdata:scienceinthepetabyteera[J].Nature,2008,455(7209):8-9.[3]李成华,张新访,金海等.MapReduce:新型的分布式并行计算编程模型[J].计算