搜索
您的当前位置:首页正文

大数据应用技术探究

来源:六九路网
第32卷第2期 2016年6月

金陵科技学院学报

JOURNAL OF JINUNG INSTITUTE OF TECHNOLOGY

Vol.32, No. J unc,201 6

大数据应用技术探究

鲁斌\\刘昌余2

(1.五邑大学计算机学院,广东江门529020;.华南农业大学数学与信息学院,广东广州510642)

摘要:根据大数据各个环节处理的不同,对大数据在存储、管理、处理、分析等环节的工程技术进行了简要的概

述,介绍了各环节主流技术的实现原理及其特点,探讨了存在的一些问题和缺点。列举并讨论了一些在大数据 领域具有代表性的科技企业使用的大数据技术。经过比较认为,大数据主要的技术流派为两种。其一是谷歌公 司的大数据三大技术,其二是开源世界的Hadoop,大部分工程应用都采用了基于Hadoop的技术。

关键词:大数据;Hadoop;应用技术;MapReduce中图分类号:TP311

文献标志码:A

文章编号:1672 755X(2016)02 0039 05

Study on Big Data Applied Technologies

LU Bin1,LIU Chang-yu2

(1. Wuyi University,Jiangmen 529020, China; 2. South China of Agricultural University,Guangzhou 510642, China)

Abstract: According to different processing ways of different stages of big data,

some engineer­

ing techniques arc briefly summarized in the corresponding stages of storage, management, processing,and analysis. In each part the principles of implementation and the characteristics of mainstream technologies are introduced. Meanwhile, the problems and shortcomings of those technologies are also discussed. Then, the big data techniques are listed and discussed which are used in representative science and technology enterprises in the big data field. Aftercomparison, it comes to the conclusion that there are actually two main kinds of big data. One is the three major technologies of big data developed by Google Corporation; the other is Ha- doop in open source world. Most of engineering applications are based on Hadoop technology.

Key words: big data; Hadoop; application technology; MapReduce

目前,信息技术和存储技术都在飞快地发展进步中,这使得利用各种爆炸性增长的巨量资料和数据成 为可能,人类也进人了一个大数据的时代。由于数据量非常巨大,人们很难在有限的时间内用常规的流程 和传统的软件工具对其内容进行管理、分析和处理。这使人们不得不想出新的办法来处理大数据。除去 纯粹的理论研究,在工程技术方面,大数据有多个不同的处理环节及相关技术。目前,面向大数据的应用 技术研究集中在存储、管理、处理、分析等环节。本文对这几个环节应用到的技术进行综述。

1存储技术

在大数据存储方面,主要有传统的关系型数据库和NoSQL数据库两大类别。关系型数据库利用关

系模型来描述真实世界中各种实体之间的关系,当前流行的关系型数据库有O r a c 1 e、M y S Q L等,它们以

01 04

基金项目:广东省科技计划项目(2016A020210103);工门市科技计划项目;五邑大学博士启动资金项目(2014BS07) 作者简介:鲁斌( 1 977—),男,湖北随州人,讲师,博士,主要从事复杂网络及数据挖掘研究。

收稿日期:016

金陵科技学院学报第32卷

处理结构化数据为主。

传统的关系型数据库采用数据库集群技术来处理海量的大数据,维持ACID原则非常困难。在数据 存储工具的选择上需要在多种因素之间取得平衡[]。这也使得关系型数据库即使部署在集群里对处理海 量数据也显得力不从心,具有明显的局限性[2]。这是由于关系型数据库的性能与伸缩性受到限制,特别是 横向扩展能力很差;并且,关系型数据库难以满足高并发处理和实时性要求。

于是,NoSQL技术应运而生。NoSQL数据库是专门应对大规模数据集合、多重数据种类带来的挑战 而产生的,尤其是解决大数据的应用难题。NoSQL数据库一般不仅仅支持SQL语言。根据存储方式的 差异,NoSQL数据库可划分为不同的类型。目前应用广泛的有扩展列存储方式,如Go〇glePMgTable[3]、

Hbase、Cassandra[4];有文档存储方式,如 MongoDB、CouchDB;有 Key-Value 存储方式,如 Redis(Remote DictionaryServer)、PerklyDP;有图存储方式,如Neo J[5]、InfiniteGraph ;有基于对象的存储方式,如 DP)40 等[6]。

NoSQL数据库有三大构建基础:CAP理论、PASE模型和最终一致性[7_8]

CAP理论是在分布式环

境中设计和部署系统时要考虑3个属性,即Conistency( —致性)、Availability(可用性)和PartitionToler-

ance(分区容忍性)。在设计数据库系统时,3个核心需求可能不能同时满足,最多只能满足2个,那么就

要在三者之间做出权衡。最终系统会因为侧重点不同而采用不同的存储策略。PASE模型是基于同性质 之间的取舍,考虑了高可用性的设计。PASE模型也包括3个属性,分别是基本可用(Pasically

Available)、软状态(Soft-state)和最终一致性(EventuallyConsistent)。基本可用的含义是系统能够基本

运行、始终提供服务。软状态是指系统不要求一直保持强一致状态,可以有一段时间不同步,它也可以理 解为无连接的,而硬状态是有连接的。最终一致性是指系统需要在某一时刻后达到一致性要求。可以看 出,PASE思想支持系统保持基本的可用性,而达到最终一致,与ACID原则恰恰相反。PASE是CAP理 论结合实际问题的产物[9]。更高性能和更灵活的架构是推动NoSQL发展的两大动力。

2管理技术

大数据的管理和分布式文件系统密不可分,大数据管理系统正是通过分布式文件系统对大数据进行

合理的规划管理的。分布式文件系统作为整个大数据应用的基础,处于整个系统的最底层,以透明的方式 对分布在系统各处的文件进行管理和存取,以达到支持海量数据存储和数据并行分布式处理的目的。

具有代表性的分布式文件系统是谷歌公司提出的GFS文件管理系统[0],它采用主从结构,使用大量 的廉价服务器,通过数据分块、追加更新等方式实现了海量数据的高效存储,并提供容错功能和附加记录 的操作。附加记录操作与谷歌公司独有的业务相关。当成千上万的网页爬虫发挥作用的时候,谷歌的数 据就通过大规模序列写操作得到持续不断的更新,更新的方式是将新数据直接附加在已有数据的后面,这 比利用同步和协调机制修改数据方便得多。第一代GFS是为批处理设计的,吞吐量很大,善于处理大文 件,但是延迟也较高,在容错处理的时候会产生大约2 s的停止服务时间。为此,谷歌公司对GFS进行了 优化设计,推出了第二代GFS系统,即Colossus系统。该系统优化了容错机制,避免了 2 s的停止服务时 间,也完善了处理小文件的功能。而且,Colosus系统能存储更多的元数据,并对这些数据进行自动分 区。Colossus系统还使用Reed-Solomon算法进行复制操作,以此提高了写的性能,降低了延迟[11]。

在开源世界,HDFS是比较流行的分布式文件系统。它采用主从架构体系。1个HDFS集群里包含 若干个命名节点和数据节点。其中命名节点管理系统的命名空间以及文件的元数据,监控数据节点的状 态,也监听数据节点和客户端的请求,执行对应的操作。命名节点不处理数据读写,只是作为元数据的管 理者和仲裁者。数据节点是文件存储的基本单元,管理着本节点的数据存储,处理客户端的读写请求,并 在命名节点的统一调度下进行相关的操作。HDFS系统吞吐量高,扩展性好,流式访问模式高效,适合大 文件存储,运行于廉价的商用机器集群上。但是它也有很多缺点,比如,不适合低延迟的数据访问、无法高 效存储大量小文件、不支持多用户写人及任意修改文件等。

应用较多的分布式文件系统还有Lustre、MogileFs、FreeNAS、FastDFS、NFS等[12]。

第2期鲁斌,等:大数据应用技术探究

3处理技术

在大数据处理技术方面,最主流的平台是Hadoo^

Hadoop是一个开源分布式计算平台,源于另外2

个开源项目Lucene和Nutch,曾经是Nutch的一部分,而Nutch又是以Lucene为基础的开源搜索引擎应 用。Hadoop的核心是HDFS和MapReduce,两者互相配合完成并行分布式计算任务。HDFS前面已经 描述。MapReduce是一个能处理和生成超大数据集(>1TB)的编程模型,它利用映射(Map)和约简(Re­duce) 的思想来完成大规模的并行化计算 ,包含了 Map 函数和 Reduce 函数,这 2 个阶段前后配合,有效地 屏蔽了底层实现细节,轻易地完成并行计算工作。在使用MapReduce编程模型的时候,用户可以自定义 Map函数,把输人的一组键值映射成一组新的键值对,并传递给Reduce函数。Reduce函数根据用户自定

义的内容,把映射的键值对合并约简以保证每一个键组具有相同的值,再计算最终的结果。

MapReduce尽管应用广泛,但是它也有很多不足之处,比如它的编程模板不够灵活,不能很好地适应 小规模集群,其远程读取全部的键值对及按值排序也会消耗大量的时间;另外,MapReduce处理多个相关 异构数据集的能力欠缺。针对MapReduce编程模型的不足,各种改进方案也先后被提出来,比如 KPNs[13]、Barrier-less MapReduce[14]、MapReduceMerge[1)]、()ivos[6]等。这些改进方案都只是改进了 MapReduce某一方面的缺陷,但是也带来了新的缺点,所以都没能普及开来。

4

分析技术

对大数据进行内容上的分析可以挖掘大数据的价值,这属于大数据的核心环节。在大数据分析方面,

Hive是Facebook公司基于静态批处理的Hadoop研发的, 具有友好的类SQL查询界面,具备分析海量数据的能力。Hve是一种数据仓库基础架构,在底层封装了 Hadoop的数据仓库处理工具,再通过这些工具对数据进行提取转化,将结构化的数据文件映射为1张数 据库表,用户可以通过Hve定义的类SQL语句(HiveQL)对这些表进行查询分析,其实现机制是 HiveQL语言对语句进行解析和转换,进而生成多个MapReduce并行任务来执行。在加载数据的过程 中,Hve对数据不进行任何的修改和添加,只是将数据转移到Hve指定的目录下。Hve的体系结构可 分为如下几个组件:命令行接口(Command Line Interface, CLI)数据库接口 JDBC/ODBC、Thrift Server、Hive Web Interface、兀数据服务组件(Metastore)和Driver组件。这些组件协同工作,完成大数

据分析任务。

代表性的工程应用技术有Hve[17]、Pig[18]等。

Pig也是基于Hadoop的大数据分析平台,由Yahoo公司研发。它提供的类SQL语言(PigLatin)是 一种构建在MapReduce之上的高级查询语言。Pig允许用户自定义功能,并编译进MapReduce模型的 Map和Reduce函数中。Pig利用PigLatin写一个脚本嵌人到应用程序中,并在集群中自动并行处理与 分发,而不需要单独编写专门的MapReduce应用程序。使用Pig技术,开发人员拥有比Hve技术更大的 灵活性。并且,由于Pig允许开发简洁的脚本,其代码量相对就减少了很多,属于轻量级的技术。

5

代表性应用

大数据应用技术的发展壮大,包括谷歌在内的国内外科技企业起了关键性作用,这些大公司也有实力 去实施大数据的研究与应用。大数据的主要来源和应用都是来自于企业内部。企业内部大数据的应用, 可以在多个方面提升企业的生产效率和竞争力[9]。限于篇幅,在此只对若干行业翘楚进行介绍。一直以 来谷歌公司都是科技企业中的领军者,在大数据领域已经投人了巨大的资源,并且卓有成效。可以说,谷 歌公司是大数据时代的奠基者,其大数据技术及架构一直是同行争相学习和研究的典范。如前文所说,谷 歌公司的大数据技术包括

GFS、MapReduce和BigTable

三大技术。现在无论是

MapReduce还是

BigTable都应用得非常广泛,成为数据领域里的热门技术,前者基本上已经代表了大数据。

在大数据流行前,微软公司就已经在推动相关的应用。微软开发出一套大数据解决方案,利用已有的工 具,兼容当前流行的大数据格式,从中获取有用的信息,而无需考虑所需的系统环境。微软发布了基于

金陵科技学院学报第32卷

Hadoop的大数据工具HDInsight2。],以HortonworksDataPlatform为基础,它其实是将简化的Windows和 一个与ApacheHadoop完全兼容的发行版本相结合,利用Office和SharePoint等软件,以期能够通过连接世 界的数据和服务来发现新的价值。微软的大数据策略同时在WindowsAzure平台和WindowsServer上提供 Hadoop技术的支持,在WindowsAzure平台上用作基于云的服务,在WindowsSever上用作内部部署的服 务。并且,它通过集成.NET和新的JavaScript库,简化Hadoop中的编程。开发者可以在JavaScript中使用 新的JavaScript库来轻松编写MapReduce程序,然后通过浏览器来部署那些JavaScript代码。

亚马逊公司结合自己的主业,利用大数据来提升自己的用户体验。它拥有领先的云基础设施、海量数 据流和内容,并以此在云计算和大数据领域里进行布局,早在2009年就推出了弹性MapReduce( Amazon ElasticMapReduce)。弹性MapReduce运行在亚马逊弹性计算云和简单存储服务上,其弹性就体现在它 是一项能够迅速扩展的Web服务,根据用户需求可以迅速地扩展。用户可以利用弹性MapReduce处理 和分析数据,并可以提取结果文件,导人到数据库或者微软E x c e l及T a b 1 e a u等工具中使用。除了弹性 MapReduce,亚马逊公司还增加了 2项新的大数据服务,其中,AmazonDynamoDB是完全托管的高性能 NoSQL数据库服务,易于设置、运行和扩展,RedShitt则是一个在线的数据存储库。

IBM公司作为全球最大的信息技术和业务解决方案公司,也在大数据领域有一定发展。IBM于2011 年5月推出了 InfoSphere大数据分析平台,它包括Biglnsights和Streams部分。其中,Biglnsights也基 于Hadoop技术,能够提供多节点的分布式计算,并能够随时增加节点数以提升数据处理能力。 Biglnsights主要用于对大规模的静态数据进行分析,而Streams则采用内存计算方式分析实时数据。

在国内的科技界,各大公司早已布局大数据领域,具有代表性的就是互联网行业的阿里巴巴、百度等 大公司。2012年,阿里巴巴公司公布了三步走发展策略,即“平台、金融、数据”。此前一年,阿里的技术架 构开始了从Oracle商用系统向基于Hadoop开源平台的迁移。经过一系列架构调整,阿里巴巴公司现在 已经形成了稳定强大的大数据处理平台,包括云服务引擎、开放存储服务、开放数据处理服务、弹性计算服 务、关系数据库服务、分布式文件系统及相应的任务调度策略等。根据IDC调查的数据显示,阿里云成为 国内最大的IAAS云计算厂商。

和阿里巴巴一样,百度公司也是天然的大数据企业,其早就拥有一套完整的大数据技术,先后推出百 度指数等大数据应用。百度公司于2014年的百度技术开放日上宣布正式发布大数据引擎,开放包括开放 云、数据工厂、百度大脑三大组件在内的核心大数据能力,通过大数据引擎向外界提供大数据存储、分析及 挖掘的技术能力。这个大数据引擎利用科学家吴恩达带领下的深度学习技术和数据建模技术,使数据具 有“智能”。这也是全球首个开放的大数据引擎,其技术也是采用Hadoop框架,其中数据仓库基于Hive。

腾讯公司的即时通讯聊天软件QQ和微信是国内用户量最大的客户端软件,它们每天的数据量是个 天文数字。为了支撑庞大的数据流量,腾讯的大数据平台主要从离线和实时2个方向支撑海量数据接人 和处理。腾讯大数据平台的核心技术主要由三大模块组成,分别是:支持上百PB级数据的离线存储和计 算的分布式数据仓库、基于在线消息流的实时计算平台和实时数据接人及分发系统。其中,分布式数据仓 库是基于开源的Hadoop和Hive技术构建,并进行了大量的优化和改造,能提供稳定的大数据平台支撑 和决策支持。实时计算平台是基于开源的Storm[21]深度定制的流式处理引擎,可以进行精准推荐和实时 监控及分析。实时数据接人及分发系统在业务数据源和数据处理系统之间起着桥梁作用,为后端的分布 式仓库系统和实时计算平台提供数据支持[22]。6

结语

从小数据到大数据,从分析思维到整体思维,反映了科学范式从简单性科学向复杂性科学演进。在系 统科学的范畴里,与大数据对应的是包含复杂网络在内的复杂性科学。复杂性科学与大数据属于同一科 学范式,思维方式基本一致,大数据技术实际上可以看作是复杂性科学的一种技术实现,而复杂性科学则 为大数据技术奠定科学基础。

经过对各大公司的应用比较发现,目前大数据主要的技术流派分为两种。其一是谷歌公司的大数据

第2期 鲁斌,等:大数据应用技术探究 43

三大技术,一直被视为大数据行业的标杆,为谷歌公司包括搜索引擎在内的各项业务提供着强大的助力, 并且在此基础上谷歌公司的大数据技术还在不停地完善发展进化中。其二是开源世界的Hadoop技术。 由于谷歌的三大技术起初并没有开源,Hadoop技术可以说是对谷歌三大技术的开源实现。其中,Hadoop 技术中的MapReduce对应着谷歌的MapReduce, HDFS对应着GFS,HP)ase对应着BigTable。因为

Ha­

doop 技术是开源免费的,容易部署实施 ,同时产生版权纠纷等问题的可能性较低 ,所以大多数工程应用所

使用的技术都是基于Hadoop技术框架的。

参考文献:

[I] 李学龙,龚海刚.大数据系统综述[].中国科学:信息科学,2015,45( 1 ) : -44[]刘一梦.基于MongoDP的云数据管理技术的研究与应用[D].北京:北京交通大学,2012[3] Chang F,Dean J, Ghcmawat S, ct al Pigtablc:八 DistributcdStoragcSystcm forStructurcd Data[C]. New York:

ACM Press,2006

[]Lakshman A,MalikP. Cassandra: A Decentralized Structured Storage SystcrnJJ]. Aern SigopsOperating Systems Re- view,2010, 44(2) :35 4 0[5] Chaudhuri S, Dayal U, Narasayya V. An Overview of Business Intelligence T'cchnology[j]. ACM Commun,2011, 54 :

88 98

[]吴金朋.一种大数据存储模型的研究与应用[D].北京:北京邮电大学,202[]申德荣,于戈,王习特,等.支持大数据管理的NoSQL系统研究综述[].软件学报,2013,24(8):1786 1803[8] Gilbert S, Lynch N. Prcwcr5s Conjecture and the F'casibility of Consistent, Available, Partition-tolerant Web Services [].ACM SIGACT News,2002, 33(2) :51 59[]陈明.分布系统设计的CAP理论JJ]计算机教育,2013( 15) 109 1 12[10] Ghcmawat S,(_x〇bioff H,Leung S T. The Google File Systcm[C]. New York:N Y Press,2003

[II] EMC 中国研究院.全球级的分布式数据库 Google Spanner 原理[EP/OL].(2012 09 23)[2016 01 04]. http://

wcibo.com/2294 94 2122/yCtnr0Gg 5 ? rcfcr_flag= 1001030103_ &type = comment # _rnd 14 629002953 10[12] 杨赛.当下流行的分布式文件系统大阅兵[EP/OL]. (2010 — 07 — 20) [2016 — 01 — 04 ]. htp: / /os. 5 1 cto. com/art/

201007/212689_all.htm

[13] Vrba Z,Halvorscn P.Kahn Process Networks arc a FlcxiblcAltcrnativc to Maprcducc[C].Piscataway:Proc of IEEE In-

tcrnational Conference on High Performance Computing and Communications»2009[14] VermaA,ZcaN. Preaking the MaprcduccStagc Parricr[C]. Los Alamitos : Proc of IEEE International

Cluster Computing,2010[15] Yang H C,DasdanA.Map-Reducc-McrgeSimplificdRclational Data Proccssing[C].New York:Proc of ACM SIGMOD

International Conference on Management of Data»2007

[16] Valvag S V,Johansen D.Oivos:Simplc and Efficient Distributed Data Proccssing[C].'Piscataway:Proc of IEEE Interna­

tional Conference on High Performance Computing and Communications»2008

[17] Confluence Administrator. Hivc[EP/OL]. (2016 01 04) [201 6 01 04]. https ://cwiki.apachc.org/conflucnce/dis-

p 1 ay / H i ve/ Home

[18] Gavin.Pig[EP/OL]. (2011 09 02) [201 5 12 23]. https : //cwiki.apachc.org/conflucnce/display/PlG/Indcx[19] 张引,陈敏,廖小飞.大数据应用的现状与展望[].计算机研究与发展,2013(S1 ):216 233

[20] Microsoft.微软大数据[EP/OL].(2015 1 1 04 ) [201 6 01 04].http://www.microsot.com/zh cn/scrvcr cloud/

solutions/’big data.aspx

[21] 李娟.医疗卫生信息化综合大数据平台关键技术探究[].金陵科技学院学报,2014,30(4):21 24

[22] 腾讯.腾讯大数据之新一代资源管理与调度平台[EP/OL].(201 5 07 09) [2015 12 09]. http://bigdata.qq.com/

article? id = 2786

(责任编辑:湛江)

C

因篇幅问题不能全部显示,请点此查看更多更全内容

Top