大数据应用技术和潜在问题研究

大数据应用技术和潜在问题研究

大数据应用的技术体系

1.云计算及其编程模型MapReduce

1)云计算简述:大约从2007年下半年开始,云计算由于其能提供灵活动态的IT平台,服务质量保证的计算环境以及可配置的软件服务而成为热门话题。文献中给出了云计算的比较完整的定义:云计算一个大规模的由规模经济驱动的分布式模型,位于其中的抽象的、虚拟的、动态可扩展的、可管理的计算能源、存储、平台、服务等通过因特网交付给客户。由上述云计算的定义我们知道,云计算首先得是大规模的、分布式的,少量的计算处理用不着云计算;其次,它是跟规模经济相关联的,比较形象的说法是,云计算资源跟“电”和“水”一样,是按需收费的,并且是大规模式销售的,通常在建立数据中心时会考虑成本因素;最后,它从广义上说是给客户的一种服务,可以包括提供存储、计算等资源。云计算可以按服务的内容和交付形式分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)等。在单机芯片集成度已进入极小尺度级别,指令级并行度提升也已接近极限的今天,纵向扩展似乎已经不够现实,这也远远不能满足大数据处理的要求,而云计算的要求比较宽松的允许异构网络的横向扩展,无疑给大数据处理带来了方便。云计算能为大数据提供强大的存储和计算能力,可以迅速、方便地为大数据提供服务,另一方面,大数据的处理需求也为云计算提供了更多更好地应用场景。由此,云计算作为大数据的支撑技术而倍受业界关注。

2)MapReduce简述:关系数据库作为一门发展了近40年的主流数据管理技术,主要用于联机事务处理(OLTP)应用、联机分析处理(OLAP)应用和数据仓库等,然而扩展性方面的局限使得其在大数据时代遇到了极大障碍。2004年,谷歌公司提出的MapReduce技术,以其利用大规模廉价服务器以达到并行处理大数据的目的而倍受学术界和工业界的关注,广泛应用于机器学习、数据挖掘等诸多领域。基于MapReduce的大数据分析处理研究也在不断深入,MapReduce作为一种非关系数据库的数据管理工具代表,克服了关系数据库扩展性方面的不足,将计算推向数据也迎合了大数据时代的内在需要,成为大数据处理的基本工具。而Hadoop作为模仿MapReduce而实现的一个云计算开源平台,目前已成为最为流行的大数据处理平台。MapReduce对于大数据处理的基本构思是分而治之,将大数据任务分解为多个子任务,将得到的各个子结果组合并成为最终结果。MapReduce对大数据的处理可抽象为两个主要阶段,Map阶段对初始的键-值(Key/Value)对进行处理,产生一系列的中间结果Key/Value对,然后通过Reduce阶段合并所有具有相同Key值的Key/Value对,得到最终结果。MapReduce对数据进行处理的应用思路如图2所示。

2.大数据获取技术

每天都有大量数据产生,并且这些数据通过不同的途径,以不同的形式被接收和记录。本节将简单介绍几种常见的大数据获取途径。

(1)传感器技术:近年来,传感器技术蓬勃发展,无论是道路交通方面,还是医疗机构方面甚至是个人工作和生活场所,传感器无处不在,大量的数据源源不断地被传感器所接收。可以说,传感器的迅速普及,为大数据的获取提供了有力地保障。传感器技术的快速发展,也促进了传感器网络的逐步完善。由于构建传感器网络的设备、数据收集、数据存储等方面的差异性,网络孤岛普遍存在,如何解决异构网络所带来的数据共享问题一度成为研究者们面临的极大挑战。不过随后美国国家技术标准局(NIST)和IEEE共同组织了关于制订智能传感器接口和连接网络通用标准的研讨会,产生了IEEE1451传感器/执行器、智能变送器接口标准协议族,试图解决传感器市场上总线不兼容的问题。2005年,开放地理空间联盟(OGC)提出了一种新型的传感器Web整合框架标准,让用户能透过Web的界面来进行节点搜寻、数据获取及节点控制功能。文献[12]对无线传感器网路的路由协议进行了研究,指出多路径路由发展的趋势和挑战,而文献[13]则从生物学、商业、环境、医疗、工业以及军事等领域探讨无线传感器的重要用途。

(2)Web2.0技术:“Web2.0”的概念2004年始于出版社经营者O'Reilly和MediaLiveInternational之间的一场头脑风暴论坛,所谓的Web2.0是指互联网上的每一个用户的身份由单纯的“读者”进化为了“作者”以及“共同建设人员”,由被动地接收互联网信息向主动创造互联网信息发展。Web2.0伴随着博客、百科全书以及社交网络等多种应用技术的发展,大量的网页点击与交流促使了大数据的形成,给人类日常生活方式带来了极大的变革。

(3)条形码技术:条形码的使用给零售业带来了革命性的改变,通过内嵌ID等信息,条形码在被扫描之后,快速在数据库中进行ID匹配,便很快就获知该产品的价格、性能、产商等具体信息,条形码被广泛应用于零售商店的收银以及车站售票等业务中,每天大量的商品销售记录通过扫描条形码而产生。近年来的智能手机的盛行,手机应用如微信中的二维条形码也随处可见,文献[14]中设计了一种应用于手机应用的彩色二维条形码,改善了用户对应用程序的感受。

(4)RFID技术:RFID与条形码相比,扩展了操作距离,且标签的使用比条形码容易,携带一个可移动的阅读器便可收集到标签的信息,被广泛应用于仓库管理和清单控制方面。RFID标签可以分为两类,一类是被动的,如今被广泛使用,其造价便宜,但是没有内部电源,依靠阅读器的射频波产生能量,操作距离也很近,因而其适用性也受到了制约;另一类是主动的,其拥有内部电源,因此造价较贵,但是操作距离远,存储能力强,因而适用范围广,在未来这种标签会受到普遍欢迎的。学术界在RFID技术的研究上已经取得巨大的进步。较早的工作重心大多集中在对标签进行搜集的问题上,即尽可能快地在大量标签中搜集他们的ID,而这方面最大的挑战是解决多标签同时竞争较窄的信道引起冲突的问题。研究者们提出了两类解决思路,即基于ALOHA的协议[15-17]和基于树的协议[18-20]。而其他的工作专注于标签评估问题,即使用统计学的方法来评估一个庞大系统中的标签数目[21-23]。总之,RFID由于具有操作范围广泛、性能稳定以及高存储能力等特性,在工业界中将具有巨大的潜力。

(5)移动终端技术:随着科学技术的发展,移动终端诸如手机、笔记本、平板电脑等随处可见,加上网络的宽带化发展以及集成电路的升级,人类已经步入了真正的移动信息时代。如今的移动终端已经拥有极强的处理能力,通信、定位以及扫描功能应有尽有,大量的移动软件程序被开发并应用,人们无时无刻不在接收和发送信息。目前,智能手机等移动设备的数量仍然在迅猛增长中,移动社交网络也会日益庞大和复杂,海量的数据穿梭其中,针对移动数据的处理也将越来越复杂。

3.文件系统

文件系统是支撑上层应用的基础,本小节将简要介绍面向大数据处理的文件系统如谷歌分布式文件系统(GFS),以及一些其他的分布式文件系统。

1)分布式文件系统GFS:谷歌自行开发的文件系统GFS[24],是一个基于分布式集群的大型的分布式文件系统,它为MapReduce计算框架提供底层数据存储和数据可靠性。GFS采用廉价普通磁盘,并把磁盘数据出错视为常态,其自动多数据备份存储也增加了可靠性。GFS基本构架中,GFSMaster保存了GFS文件系统的3种元数据:命名空间、Chunk与文件名的映射表、Chunk副本的位置信息,前两个数据通过操作日志提供容错处理能力,第3个数据存储在ChunkServer上,可在Master失效时快速恢复Master上的元数据;GFSChunkServer是用来保存大量实际数据的数据服务器。GFS基本工作过程如下:(1)在程序运行前,数据已经存储在GFS文件系统中,程序执行时应用程序会告诉GFSServer所要访问的文件名或者数据块索引是什么。(2)GFSServer根据文件名和数据块索引在其文件目录空间中查找和定位该文件或数据块,并将这些位置信息回送给应用程序。(3)应用程序根据GFSServer返回的具体Chunk数据块位置信息,直接访问相应的ChunkServer。(4)应用程序直接读取指定位置的数据进行计算处理。后来谷歌对GFS进行了改进,并对新版本命名为Colosuss,主要对原有的单点故障、海量小文件存储等诸多问题进行了修正和改进,使得系统更加安全和健壮。

2)其他文件系统:除了谷歌的GFS,业界其他针对大数据存储需求的文件系统也层出不穷。Hadoop的文件系统HDFS[25]作为模仿GFS的开源实现,同样也为Hadoop的底层数据存储支撑,提供数据的高可靠性和容错能力,拥有良好的扩展性和高速数据访问性;SUN公司开发的Lustre[26]是一个大规模的、安全可靠的、具备高可用性的开源集群文件系统,美国能源部在此基础上实现了新一代的集群系统,显著提高了输入输出速度,已在高校、国家实验室和超级计算研究中心产生了深远影响;Facebook推出的针对海量小文件的文件系统Haystack[27]有效地解决了海量图片存储问题,它实现多个逻辑文件共享一个物理文件功能,并且增加缓存层,部分元数据直接被加载到了内存。

4.数据库系统

1)上在索引、数据压缩、可视化等技术方面的不断扩展,使其具有了高性能的优势。但是诸多因素导致了其扩展性面临严峻的挑战,主要体现在:(1)单机方面,并行数据库基于高端硬件设计,认为查询失败是特例且纠错复杂,不符合大规模集群失效常态的特性;(2)集群方面,并行数据库对异构网络支持有限,各节点性能不均,容易引起“木桶效应”。总之,并行数据库的扩展性方面的缺陷使其面临大数据的处理往往力不从心。

2)MapReduce分布式数据库BigTable:由前述知,并行数据库由于扩展性方面的缺陷无法胜任大数据的处理工作,以谷歌公司推出的BigTable为代表的未采用关系模型的NoSQL(NotonlySQL)数据库由此诞生,NoSQL数据库具有模式自由、简易备份、接口简单和支持海量数据等特性,对于大数据的存储和处理十分有效。谷歌在GFS之上又设计了MapReduce的分布式数据库BigTable[28],为应用程序提供了比单纯地文件系统更方便、更高层的数据操作能力,BigTable提供了一定粒度的结构化数据操作能力,主要解决一些大型媒体数据(Web文档、图片等)的结构化存储问题。BigTable主要是一个分布式多维表,表中数据通过行关键字、列关键字和时间戳来进行索引和查询定位,并且BigTable对存储在表中的数据不做任何解释,一律视为字串,具体数据结构的实现由用户自行定义。BigTable的基本构架如图3所示,BigTable中的数据均以子表形式保存在子表服务器上,最终以GFS文件形式存储在GFS文件系统中。客户端程序直接和子表服务器通信,Chubby服务器完成对子表服务器的状态监控,主服务器通过查看Chubby服务器目录来终止出现故障的子服务器并将其数据转移至其他子服务器。另外,主服务器还完成子表的创建和负载均衡等操作。当然,由于MapReduce将本来应由数据库管理系统完成的诸如文件存储格式的设计、模式信息的记录、数据处理算法的实现等工作转移给了程序员,从而导致程序员负担过重。另外,MapReduce是面向非结构化的大规模数据处理的,往往是一次处理,因而同等硬件条件下的性能也比并行数据库低[29]。

3)数据库的深层探讨:并行数据库具有高性能的优势,但扩展性问题阻碍了其在大数据处理上的进一步发展,而MapReduce性能和易用性上提升空间较大,因此目前两种方案均不理想。业界经过长时间的探讨,基本一致认为并行数据库和MapReduce各取其长,相互融合,也许是一种不错的道路[30]。由此诞生了并行数据库主导型、MapReduce主导型以及并行数据库与MapReduce集成型3类大数据处理数据库。

(1)并行数据库主导:型这类数据库的基本思路是在并行数据库上增加MapReduce的大数据处理能力,将数据分析过程转移到数据库内进行,使得原系统同时获得SQL的易用性与MapReduce的开放性。但是,并行数据库的扩展能力与容错能力并未得到改善,典型的系统如Greenplum[31]、Asterdata[32]等。

(2)MapReduce主导型:这类数据库的基本思路是利用关系数据库的SQL接口和模式支持技术改善MapReduce的易用性。通过SQL接口,可以很简便的完成查询分析等操作,大大减轻了程序员的负担,但MapReduce的性能方面仍有待提升,典型的系统如Facebook的Hive[33]和Yahoo!的PigLatin[34]等。

(3)并行数据库与MapReduce集成型:这类数据库兼顾并行数据库与MapReduce的长处,主要分两种思路:按功能将并行数据库与MapReduce分别设计到相应的部位以形成一个完整系统,以及整合并行数据库和MapReduce这两套完整的系统以构成一个混合系统。第一种思路典型代表是耶鲁大学提出的HadoopDB[35],它将Hadoop作为调度层和网络沟通层,关系数据库作为执行引擎,尽可能地将查询压入数据库层处理,Hadoop框架的应用可以获得较好的容错性和对异构环境的支持,库内数据查询的使用则可获得关系数据库的高性能优势。第二种思路的代表是Vertica数据库[36],它拥有两套独立完整的系统,Hadoop负责非结构化数据和耗时的批量复杂数据的处理,Vertica负责结构化数据的处理以及高性能的交互式查询。当然,这些思路仍非理想的方案,例如,HadoopDB丧失了MapReduce较低的预处理和维护代价等,Vertica则依旧存在Vertica扩展性问题和Hadoop的性能问题。因此,在大数据面前,数据库系统的研究还有很长的路要走,我们在总结传统的数据库经验的同时,还要积极了解新兴的数据库系统,才能更好地促进适应现今大数据发展的优良数据库的面世。

5.大数据分析技术

用于大数据集的分析方法很多,包括统计学、计算机科学等各个领域的技术。本小节将简要介绍其中几种典型的大数据分析技术,当然,这些技术同样适用于少量数据集的分析,但大数据集环境下的应用无疑会发挥更加明显的作用。

(1)A/B测试:传统的A/B测试,是一种把各组变量随机分配到特定的单变量处理水平,把一个或多个测试组的表现与控制组相比较,进行测试的方式。现在的A/B测试主要用于在Web分析方面,例如通过对比统计新旧网页的用户转化率,来掌握两种设计的优劣等。大数据时代的到来为大规模的测试提供了便利,提高了A/B测试的准确性。由于移动设备及技术的迅猛发展,移动分析也逐渐成为A/B测试增长最快的一个领域。

(2)聚类分析聚类分析:

指将物理或抽象的集合分组成为由类似的对象组成的多个类的分析过程。聚类分析是一种探索性的数据挖掘分析方法,不需事先给出划分的类的具体情况,主要用在商业、生物学、因特网等多个领域中。对于大数据的分析处理,通过聚类可以简化后续处理过程,并且可以发现其中隐藏的某些规则,充分发挥了大数据的作用。

(3)集成学习:集成学习指的是使用一系列“学习器”进行学习,并使用某种规则把各学习结果进行整合从而获得比单个“学习器”更好的学习效果的一种机器学习方法。对于大数据的集成学习,可以更好地提炼和把握其中的本质属性。

(4)神经网络:神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,它依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,来达到处理信息的目的。神经网络作为一门新兴的交叉学科,是人类智能研究的重要组成部分,已成为脑科学、神经科学、认知科学、心理学等共同关注的焦点。神经网络对于大数据的并行处理,无疑也是一种比较可行的方式。

(5)自然语言处理:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。人与计算机的通信交流往往存在很多歧义,如何消除这些歧义,将带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示,是自然语言处理的主要问题。大数据时代意味着有大量的知识和推理来完成消除歧义现象的可能,这也给自然语言处理带来了新的挑战和机遇。大数据分析技术还有很多,例如模式识别、空间分析、遗传算法等等,并且研究者们还在不断地寻找新的更有效地分析方法,另外通过结合多个方法来实现数据分析往往也能达到非常明显的效果。

6.大数据的可视化

面对海量的数据,如何将其清晰明朗地展现给用户是大数据处理所面临的巨大挑战。无论是学术界还是工业界,对大数据进行可视化的研究从未停止。通过将大数据图形化、图像化以及动画化等展示出来的技术和方法不断出现,本节将介绍几种典型的案例。

(1)宇宙星球图:俄罗斯工程师RuslanEnikeev根据2011年底的互联网数据,将196个国家的35万个网站数据整合起来,并根据200多万个网站链接将这些“星球”通过“关系链”联系起来组成了因特网的“宇宙星球图”[37]。不同颜色代表不同的国家,每个“星球”的大小根据其网站流量来决定,而“星球”距离远近根据链接出现的频率、强度等决定。类似地,对于具有复杂结构的社交网络,“宇宙星球图”同样也十分适用,可以根据个人的知名度、人与人之间的联系等进行绘画星球图。

(2)标签云:“标签云”的设计思路主要是,对于不同的对象用标签来表示,标签的排列顺序一般依照字典排序,按照热门程度确定字体的大小和颜色。例如对于某个文档,出现频度越高的单词将会越大,反之越小。这样,便可以根据字母表顺序和字体的大小来对各单词的具体情况一目了然。文献[38]通过将地图上的各个物理位置根据描述的具体程度用“标签云”表示,使得用户对各个场所的知名程度有个清晰的认识。

(3)历史流图:文献[39]提出了一种用于可视化文档编辑历史的“历史流图”,对于一个面向大众的开放文档,编辑和查阅都是自由的,用户可以随时自由的对文档进行增加或删除操作。“历史流图”中,横坐标轴表示时间,纵坐标轴表示作者,不同作者的不同内容对应中间部分不同颜色和长度,随着时间的推移,文档的内容不断变化,作者也在不断增加中。通过对“历史流图”的观察,很容易看出各人对该文档的贡献,当然,除了发现有人对文档给出有益的编辑外,也存在着一些破坏文档、删除内容的人,但总有逐渐被修复回去的规律。像维基百科等的词条注释文档,“历史流图”的可视化效果十分明显。关于大数据可视化的方面努力还有很多,不同的“源数据”有不同的可视化策略,大数据可视化的研究工作仍有待进行下去。

大数据应用所面临的问题

大数据时代面临的首要问题是人力和财力问题,IDC分析称,大数据相关人才的欠缺将会成为影响大数据市场发展的一个重要因素。据调查,仅美国就缺少大约14万到19万的具有深层次数据分析技巧的专业技术人员以及150万针对大数据的经理人。据阿里巴巴称,虽然其各类业务产生的数据为数据分析创造了非常好的基础条件,然而却招聘不到合适的数据科学家而影响了研发进展。高德纳公司预测,到2015年,全球将新增440万个与大数据相关的工作岗位,且会有25%的组织设立首席数据官职位。其中有190万个工作岗位将在美国,每一个与大数据有关的IT工作,都将在技术行业外部再建3个工作岗位,这将在美国再创建将近600万个工作岗位。数据科学家是复合型人才,是对数学、统计学、机器学习等多方面知识的综合掌控,能对数据做出预测性的、有价值的分析。因此,各国对大数据人才的培养工作应当快速有效地着手执行。大数据的接收和管理也需要大量的基础设施和能源,无论是传感器还是数据中心的服务器,都需要大量的硬件投入和能源消耗,这也就意味着大数据处理的财力需求极为可观。如何处理好大数据产生的资金投入比例,也成为了各国和各企业决策者面临的难题。另外,大数据还将面临严重的安全和隐私问题。首先,随处可见的传感器和摄像头等设备,会监视并记录人们位置等信息,通过海量数据的分析,便可轻易了解人们的行踪规律,从而可能给人们带来生命和财产安全;其次,“云设施”的经济划算,推动了僵尸网络的发展及海量并行处理破解密码系统的可能性;最后,由于云计算要求我们放弃自主计算能力,当整个社会的信息,包括个人信息、商业信息都存储在巨头们提供的“云”上时,我们只能寄希望于这些巨头们都是道德高尚的圣人,否则我们将面临灾难性损失。面对这些安全威胁,学术界和工业界也都纷纷提出自己策略。针对基于位置服务的安全性问题,文献[40]提出了一种k-匿名方法,即将自己与周围k-1个用户组成一个范围集合性对象来请求位置服务,从而模糊了自己的准确位置。文献[41]提出的策略是,搜集周围的k-1个用户的位置信息,并以其中的某一个的名义发送位置服务请求,从而也达到隐藏准确坐标的目的。Roy等人将集中信息流控制和差分隐私保护等技术融入云中的数据生成与计算阶段,提出了一种隐私保护系统Airavat[42],防止MapReduce计算过程中将非授权的隐私数据泄露出去,并且支持对计算结果的自动除密。Mowbray等人在数据存储和使用阶段使用一种基于客户端的隐私管理工具[43],提供以用户为中心的信任模型,帮助用户控制自己的敏感信息在云端的存储和使用。苹果最近申请了一项专利,叫做电子分析污染技术,能够将用户在苹果产品上产生的行为数据进行污染和混淆,让其他厂商获取不到真正的用户数据。这类信息安全保护的思路是:当各种加密措施无法彻底保护个人信息时,不如将大量的垃圾信息、错误信息充斥在真实有效的信息之中,让窃取者不得不耗费巨大的成本从中分析。高德纳公司分析指出,大数据安全是一场必要的斗争,并且大数据本身更可用来提高企业安全。因为解决安全问题的前提是,企业必须先确定正常、非恶意活动是啥样子的,然后查找与之不同的活动;从而,发现恶意活动,基于大数据来建立一个基线标准就很好地达到了这个目的。

最后,大数据的出现会促使IT相关行业的生态环境和产业链的变革。传统的网络公司运营模式是在自己的服务器上来管理若干产品和服务,并通过网络连线提供给用户终端,产生的数据归公司独有。然而,在大数据时代,这种模式已经难以胜任,服务公司往往会选择租赁第三方的开放平台来运营自己的业务。这样,用户提供数据,服务方处理数据,但数据的实际存储地却在第三方。大数据影响的IT产业链大致包括数据资源、应用软件、基础设施三大部分。数据资源方面,各大信息中心、通信运营商等积极研制和引用大数据技术,挖掘大量数据分析相关人才,数据资源的收集和开发产业逐步完善;应用软件方面,随着高性能云平台的出现,云应用软件也不断被开发出来,用户再也不必烦恼复杂的软件安装和配置过程,便可以轻松享受各种网络应用服务;基础设施方面,大数据对硬件的依赖,迫使高性能硬盘、低能耗服务器、小巧化个人终端等行业的快速发展。另外,大数据技术的日益成熟也会促使跨行业经营模式的发展。第三方可以将用户的各种服务请求进行打包,然后利用大数据分析来寻求最好的服务商的组合以反馈给用户。对服务提供方来说,借助第三方可以更好地推销自己的服务。而对第三方而言,可以获得大量的分析数据,其中的利益也是可观的,真正的实现了“双赢”,同时也使得用户获得更好的服务体验。

结束语

大数据时代挑战与机遇并存,正确处理好大数据,不仅符合企业的利益,也给人们日常生活带来极大的便利。本文对大数据的基本概念、处理流程以及相关技术进行了简要的探讨,并分析了大数据可能带来的一些问题及应对策略。云计算目前是处理大数据的基础技术,但其在安全和隐私方面的保障工作仍让不少人感到怀疑,根本原因还是个人和商业的信息都存放在远端的巨头们提供的看不见的“云”上。大数据时代已经到来,但是,相应的技术体系和社会保障仍是亟需研究的应用课题。(本文图略)

本文作者:窦万春 单位:南京大学 计算机科学与技术系